Унарный минус в Kotlin
Перед числом минус меняет знак. Для своего класса
эту роль берет функция unaryMinus без
параметров: она возвращает новое значение с
противоположным смыслом:
class Balance(val cents: Int) {
operator fun unaryMinus(): Balance {
return Balance(-cents)
}
}
После объявления достаточно поставить минус перед
переменной типа Balance. Вызов функции
скрыт за знаком:
fun main() {
val credit = Balance(250)
val debt = -credit
println(debt.cents)
}
Исходный объект не меняется - создается другой экземпляр. Так же работает унарный минус у целых и дробных типов Kotlin.
Сделайте класс Debt с полем cents.
Добавьте смену знака через минус перед значением.
Для долга 100 выведите противоположное число.
Создайте Debt(-40), примените унарный
минус и выведите cents результата.