Kotlin 中 val 和 var 的區別

Kailash Vaviya 2022年7月12日
Kotlin 中 val 和 var 的區別

Kotlin 允許宣告兩種變數型別:valvar。本文將討論兩者之間的區別。

雖然這兩個關鍵字都用於宣告變數,但它們之間存在一些關鍵區別。

Kotlin 中 valvar 的區別

valvar 屬性之間最顯著的區別是前者是不可變的。我們可以改變 var 變數的值,但我們不能改變 val 變數的值。

它們類似於 Java 中的 final 關鍵字。valvar 變數之間的其他一些區別是:

  1. var 變數可以多次賦值,而 val 變數只能賦值一次。
  2. var 變數可以重新賦值,但 val 變數不能重新賦值。

現在我們知道了 valvar 之間的區別,讓我們看一些我們嘗試更改它們的值的示例。

在 Kotlin 中使用 var 關鍵字

在這個例子中,我們將使用 var 關鍵字來宣告一個變數並嘗試改變它的值。

var v = "Hello!"

fun main() {
    println("This is a var variable: "+v);

    // Changing the value of var variable
    v = "Welcome!";
    println("New value of the var variable is: " +v);
}

輸出:

var 變數示例

點選這裡檢視上面示例程式碼的演示。

在 Kotlin 中使用 val 關鍵字

在這裡,我們將使用 val 關鍵字建立一個不可變變數並嘗試更改其值。

val v = "Hello!"

fun main() {
    println("This is a val variable: "+v);

    // Changing the value of val variable
    v = "Welcome!";
    println("New value of the val variable is: " +v);
}

輸出:

val 變數示例

正如我們在輸出中看到的,更改 val 變數會引發錯誤:Val cannot be reassigned

點選這裡檢視示例程式碼的演示。

在 Kotlin 中更改 val 變數的屬性

雖然我們不能更改使用 val 關鍵字宣告的變數的值,但我們仍然可以更改它們的屬性。讓我們看一個使用 val 宣告變數並更改其屬性的示例。

fun main(args: Array<String>) {
    val student = Student("David Shaw",1)
    print(student)
    student.name = "Joe Smith"
    print("\n"+student)
}

data class Student(var name: String = "", var id: Int = 0)

輸出:

更改 val 屬性的示例

正如我們所見,val 變數的屬性是可變的。

點選這裡檢視示例程式碼的演示。

Kailash Vaviya avatar Kailash Vaviya avatar

Kailash Vaviya is a freelance writer who started writing in 2019 and has never stopped since then as he fell in love with it. He has a soft corner for technology and likes to read, learn, and write about it. His content is focused on providing information to help build a brand presence and gain engagement.

LinkedIn

相關文章 - Kotlin Keyword