Как сделать переменную зависимой от других?

Я пытаюсь связать две переменные в kotlin для понимания.

Вот что я пытаюсь сделать.

Я хочу, чтобы var impact зависел от var lives. поскольку в каждом случае var lives должен содержать 70 единиц var impact.

Пожалуйста, объясни мне, как это сделать.

0
0
164
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Вы можете использовать делегат свойства, он запускается каждый раз, когда значение свойства изменяется. Используя делегат, вы можете изменить свойство 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.

Другие вопросы по теме