考虑以下,
val x: Int = 0
val变量无法更改,因此这样做x += 1不起作用
编译器说Val cannot be reassigned
为什么那么x.inc()工作正常
不x.inc()重新分配值 from 0to1
下面的kotlin代码
val nameHash get() = name.hashCode()
可以编译成java如下
public final int getNameHash() {
return name.hashCode();
}
Run Code Online (Sandbox Code Playgroud)
并且属性 nameHash 消失。然而,当 val 更改为 var 时,编译器会说“属性必须初始化” var 和 val 之间更深层次的区别是什么?
我是 Kotlin 编程语言的新手。(Java -> Kotlin)
var x
get()= 4; // Showing error Property must be initialized
val y
get()= 4; // No error
Run Code Online (Sandbox Code Playgroud)
为什么会出现这种情况?