Я изучаю kotlin и заметил, что когда мы получаем доступ к свойству класса в основной функции через оператор точки, он не показывает никаких ошибок - PullRequest
0 голосов
/ 04 августа 2020
class Car{
   val price=1000000
}

fun main(){
   val w =car()
   w.price
}
//This code runs and returns nothing

какой смысл в w.price , который ничего не делает и почему компилятор не выдает ошибку?

1 Ответ

0 голосов
/ 05 августа 2020

В kotlin вы обычно не увидите функций типа getX, как вы обычно пишете в Java. Вместо этого к свойствам могут быть напрямую прикреплены пользовательские геттеры. Например, вы можете изменить объявление свойства price на:

val price: Int get() {
    println("Got price!")
    return 1000000
}

Итак, вызывая w.price, вы вызываете Kotlin эквивалент getPrice(), который сам по себе является Java метод в фоновом режиме; как таковой, он может действительно что-то вычислять (в данном случае он печатает «Получил цену!»), поэтому само по себе это допустимое выражение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...