Я пытаюсь связать две переменные в kotlin для понимания.
Вот что я пытаюсь сделать.
Я хочу, чтобы var impact зависел от var lives. поскольку в каждом случае var lives должен содержать 70 единиц var impact.
Пожалуйста, объясни мне, как это сделать.
Вы можете использовать делегат свойства, он запускается каждый раз, когда значение свойства изменяется. Используя делегат, вы можете изменить свойство 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.
Другой способ - использовать свойство без вспомогательного поля для воздействия:
var lives = 0
val impact get(): Int {
// do something
return lives * 5 // impact depends on lives
}
Таким образом, вы не изменяете impact реактивно, как в ответе Сергея, а получаете значение, зависящее от lives, если вы обращаетесь к impact.