在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”?因为我问的是与文档中的特定例子有关的疑问,而不仅仅是一般的疑问。


当前回答

Val和var都用于声明变量。

Var就像一般变量,它在kotlin中被称为可变变量,可以被多次赋值。 val类似于Final变量,它在kotlin中是不可变的,只能初始化一次。

有关什么是val和var的更多信息,请参见下面的链接

http://blog.danlew.net/2017/05/30/mutable-vals-in-kotlin/

其他回答

两种方法创建变量在KOTLIN VAL和VAR

1.VAL存储常量值。也作Final Variable

2.VAR存储可变值

例如,点击这里

Var是一个可变变量。它是一个可以更改为另一个值的变量。这类似于在Java中声明一个变量。

Val是只读的。它类似于java中的final。val在创建时必须初始化。这是因为它在创建之后就不能更改了。

var test1Var = "Hello"
println(test1Var)
test1Var = "GoodBye"
println(test1Var)
val test2Val = "FinalTestForVal";
println(test2Val);

在Kotlin中val是不可变的,var是可变的。

Val (from value): 不可变的参考。用val声明的变量是不可以的 在初始化后重新赋值。它对应于Java中的最后一个变量。

Var (from variable): 可变参考。这样一个变量的值是可以改变的。 此声明对应于一个常规(非final) Java变量。

Var意味着变量——如果你使用Var存储任何对象,它可能会随着时间而改变。

例如:

fun main(args: Array<String>) {
    var a=12
    var b=13
    var c=12
    a=c+b **//new object 25**
    print(a)
}

Val的意思是值,它就像java中的“常量”。如果你使用Val存储任何对象,它就不能及时改变。

例如:

fun main(args: Array<String>) {
    val a=12
    var b=13
    var c=12
    a=c+b **//You can't assign like that.it's an error.**
    print(a)
}