为了理解目的,我正在尝试在kotlin中关联两个变量。
这就是我想要做的。
我希望var impact
依赖于var lives
。因为每次var lives
都应包含70个var impact
单位。
请指导我如何做。
答案 0 :(得分:5)
您可以使用属性委托,它会在每次属性值更改时触发。使用委托,您可以根据lives
的新值来更改impact
属性:
var lives: Int = 0
var impact: Int by Delegates.observable(0) { property, oldValue, newValue ->
// add your logic here to react on changes of `impact` variable
lives = 70 * newValue
}
Delegates.observable()
是Kotlin标准库的内置委托。
答案 1 :(得分:0)
另一种方法是使用没有背景字段的属性来产生影响:
var lives = 0
val impact get(): Int {
// do something
return lives * 5 // impact depends on lives
}
通过这种方式,您不会像Sergey的回答那样被动地更改impact
,但是如果您访问lives
,则会得到依赖于impact
的值。