在Kotlin中var和val的区别是什么?
我已经通过了这个链接:
属性和字段
如本连结所述:
只读属性声明的完整语法不同于
可变1有两种方式:它以val开头,而不是var
不允许设置。
但在此之前有一个使用setter的例子。
fun copyAddress(address: Address): Address {
val result = Address() // there's no 'new' keyword in Kotlin
result.name = address.name // accessors are called
result.street = address.street
// ...
return result
}
var和val的确切区别是什么?
为什么我们两者都需要?
这不是Kotlin中的变量的副本,与Java的区别:'var'和。“val”?因为我问的是与文档中的特定例子有关的疑问,而不仅仅是一般的疑问。
用var定义的变量是可变的(读和写)
用val定义的变量是不可变的(只读)
Kotlin可以在android studio中删除findViewById和减少setOnClickListener的代码。完整参考:Kotlin令人敬畏的特性
可变变量的值可以随时改变,而不可变变量的值不能改变。
哪里用var,哪里用val ?
在值经常变化的地方使用var。例如在获取android设备的位置时
var integerVariable : Int? = null
在整个类的值没有变化时使用val。例如,你想通过编程方式设置文本视图或按钮的文本。
val stringVariables : String = "Button's Constant or final Text"
简而言之,val variable是final(不可变)或将来不会改变的常量值
而且
Var变量(可变)可以在未来改变。
class DeliveryOrderEvent(val d : Delivery)
// Only getter
请参阅上面的代码。它是一个模型类,将用于数据传递。我在变量之前设置val,因为这个变量是用来获取数据的。
class DeliveryOrderEvent(var d : Delivery)
// setter and getter is fine here. No error
同样,如果你以后需要设置数据,你需要在变量之前使用var关键字,如果你只需要获得一次值,那么使用val关键字