我有 2 个列表,一个称为 mod:,
listOf("Money", 1)
另一个称为 splitSave,它是一个包含 113 项的字符串长列表。
我试图根据第一个列表的一个索引访问 splitSave 列表的索引。我尝试用这一行来做到这一点:println("$mod[1]: ${splitSave[mod[1]]}")
编译时,我收到类型不匹配错误,因为 mod[1] 的类型是“any”
如何显式定义类型,或者让 Kotlin 正确推断其类型?
它应该能够找到正确的索引,尽管它会出错并停止程序。
由于
mod
同时包含 String 和 Int,因此其类型将被推断为List<Any>
。这是正确的,因此您对列表的类型无能为力。但是,如果您想要获取 at 包含的值mod[1]
并将其视为 Int,则可以在从列表中检索该值后将该值转换为 Int,如下所示:强制转换允许您告诉编译器将该值视为 Int,因此 的类型
modIndex1
将为 Int。但请注意,如果您尝试将 String 转换为 Int,您将得到 ClassCastException。