class - 我正在学习 kotlin,我观察到当我们通过点运算符访问主函数中的类的属性时,它不会显示任何错误
问题描述
class Car{
val price=1000000
}
fun main(){
val w =car()
w.price
}
//This code runs and returns nothing
什么都不做的w.price有什么用,为什么编译器不显示错误?
解决方案
在 kotlin 中,您通常不会看到getX
通常用 Java 编写的那种函数。相反,属性可以直接附加自定义 getter。例如,您可以将price
属性声明更改为:
val price: Int get() {
println("Got price!")
return 1000000
}
因此,通过调用w.price
,您正在调用 Kotlin 等价物,getPrice()
它本身就是后台的 Java 方法;因此,它可能确实在计算某些东西(在这种情况下,它打印“Got price!”),所以它本身就是一个有效的表达式。
推荐阅读
- javascript - 根据for循环中其他元素的长度插入HTML元素
- python - 回溯寻找迷宫出口。为什么我的函数总是返回 True?
- javascript - React/Axios 像 Postman 一样接收响应状态和 JSON
- c++ - 使用opencv将RGB图像转换为一维数组
- html - 如何替换emacs中的所有出现?
- javascript - 你怎么能打乱这些问题的答案,让它们随机显示?
- oracle - 将 Oracle 一次性数据加载到 Elastic Search 的最佳方法是什么
- angular - 如何使用 Angular Material 表 MatSort
- javascript - 即使我正确编写了布尔值,我也无法将布尔值从真切换为假
- java - 如何在 Spring Boot/Spring Security 中将用户添加到 OAuth2 Auth 服务器