📜  Kotlin中var和val之间的区别

📅  最后修改于: 2021-05-20 07:35:06             🧑  作者: Mango

varval都用于以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)