从字符串连接构造 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 项目中。
我不确定我对问题的措辞是否正确。 我有一组变量,如: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 项目中。