本書第一條就是安全性,其中第一個要點就是「限制可變性」。在開發過程中,可變性是一個大敵。一旦一個物件持有可變的狀態 - 例如銀行帳戶的餘額,它的行為將變得難以預測。這就增加了出錯的風險和維護的困難度。因此,在 Kotlin 中,我們儘可能用 val 取代 var,以創建不可變的變量,並使用不可變的資料結構。
Kotlin 採取了主動的方法,鼓勵使用不可變性,並已將這些特性整合進語言中。其中以下三個主要特性會分天講解:
我們今天先討論第一點 val
有人說 val 不好記。其實只要知道 val 代表 value
就不的很難記了。所以 val 就是一個值。而且是唯讀的。
var: 這個關鍵字允許你宣告一個可變屬性。它的值可以在初始賦值後被改變。
var mutableString: String = "Hello"
mutableString = "World"
val: 這個關鍵字讓你宣告一個唯讀屬性。一旦你給它賦值,就不能再次改變它。
val immutableString: String = "Hello"
// immutableString = "World" // 這將導致編譯錯誤
預設使用 val,只有在絕對必要的時候才切換到 var,這是一個好的做法,因為它本質上使程式碼更加安全,特別是在多線程的環境中。
在 Kotlin 中,if 和 when 都可以作為表達式使用,意味著它們可以回傳值。這個特性對於 val 非常有用,因為你可以在定義一個唯讀的 val 變數時,根據條件動態地為其賦值。
以下是一些例子,展示如何使用 if 和 when 表達式與 val 結合:
val number = 10
val result = if (number > 5) {
"Number is greater than 5"
} else {
"Number is 5 or less"
}
println(result) // 輸出: "Number is greater than 5"
val number = 3
val result = when (number) {
1 -> "One"
2 -> "Two"
3 -> "Three"
else -> "Unknown"
}
println(result) // 輸出: "Three"
這些功能對於賦值 val 變數特別有用,因為你可以確保在任何執行路徑上,val 都會被賦值一次且只有一次。
此外,使用 if 或 when 表達式可以使你的程式碼更加簡潔和可讀,因為你不需要使用臨時變數或者多餘的賦值操作。這也意味著,可以在單一地方賦值,減少了出錯的機會,並確保 val 的不可變性。
今天來放金米妮的 CHANGE 吧