从字符串连接构造 var 名称

constructing var name from string concatanation

我不确定我对问题的措辞是否正确。 我有一组变量,如:STO1、STO2、STO3.....STO9;我需要让用户输入要存储和调用这些内存地址的数字。 那么有没有办法将 'STO' 连接到数字 (1...9) 以获取 var 名称? var 名称已经声明。我只需要存储一个值或检索它。 我知道在其他语言中是间接寻址,我想。

提前感谢您的任何意见。

雷.

如果在 class 中定义了变量(因此它们是属性),则可以通过反射来完成 Api。

class Example {
    var sto1 = "s1"
    var sto2 = "s2"
}

fun main() {
    val obj = Example()
    val userInput = "1"

    val prop = Example::class.memberProperties.find { it.name == "sto$userInput"}
    prop as KMutableProperty<*>
    //get value example
    println(prop.get(obj))

    //set value example
    prop.setter.call(obj, "new value")
    println(prop.get(obj))
}

为了编译它,您应该将 kotlin-reflect 库添加到您的 maven/gradle 项目中。