var和val都用于以Kotlin语言声明变量。但是,它们之间有一些关键区别:
VAR(变量)
它是一个通用变量。使用var声明的变量的值可以在整个程序中随时更改。 var也称为可变和非最终变量,因为可以随时更改其值。
例子:
fun main()
{
var marks = 10
println("Previous marks is " + marks)
marks = 30
println("New marks " + marks)
}
输出 :
Previous marks is 10
New marks 30
VAL(值)
使用val存储的对象无法更改,无法重新分配,就像Java的final关键字一样。 val是不可变的。一旦分配了val,它就变成只读的,但是,可以更改val对象的属性,但是对象本身是只读的。
范例1:
fun main()
{
val marks = 10
println("Previous marks is " + marks)
marks = 30
println("new marks " + marks)
}
输出:
Val cannot be reassigned
范例2:
// Changing values of val object
fun main()
{
val book = Book("Java", 1000)
println(book)
book.name = "Kotlin"
println(book)
}
data class Book(var name : String = "",
var price : Int = 0)
输出:
Book(name=Java, price=1000)
Book(name=Kotlin, price=1000)