首页 > 解决方案 > 我正在学习 kotlin,我观察到当我们通过点运算符访问主函数中的类的属性时,它不会显示任何错误

问题描述

class Car{
   val price=1000000
}

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

什么都不做的w.price有什么用,为什么编译器不显示错误?

标签: classkotlin

解决方案


在 kotlin 中,您通常不会看到getX通常用 Java 编写的那种函数。相反,属性可以直接附加自定义 getter。例如,您可以将price属性声明更改为:

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

因此,通过调用w.price,您正在调用 Kotlin 等价物,getPrice()它本身就是后台的 Java 方法;因此,它可能确实在计算某些东西(在这种情况下,它打印“Got price!”),所以它本身就是一个有效的表达式。


推荐阅读