變量#

在 Kotlin 中,變量分為可變變量var)和不可變變量val)。


1. 可變變量(var#

定義var 用於宣告可以更改其值的變量。

語法

1
var 變量名稱: 資料型別 = 初始值

示例

1
2
3
4
5
var age: Int = 25
println(age) // 輸出 25

age = 30 // 更改值
println(age) // 輸出 30

2. 不可變變量(val#

定義val 用於宣告唯讀變量,變量的值在初始化後無法更改。

語法

1
val 變量名稱: 資料型別 = 初始值

示例

1
2
3
4
val name: String = "Alice"
println(name) // 輸出 Alice

// name = "Bob" // 編譯錯誤,因為 `val` 不能重新賦值

3. 資料型別#

Kotlin 支援多種資料型別,例如:

  • 整數型別:Int, Long, Short, Byte
  • 浮點型別:Float, Double
  • 字元:Char
  • 字串:String
  • 布林值:Boolean

你可以指定資料型別,也可以省略型別,讓 Kotlin 自動推斷:

1
2
val number = 42 // Kotlin 自動推斷為 Int
var isKotlinFun = true // 推斷為 Boolean

4. 延遲初始化變量(lateinit var#

用於:只能搭配 var 使用,且通常用於類別的屬性。

特點:允許稍後初始化,但只能用於非空的參考型別(如 String),不支援基本型別(如 IntBoolean 等)。

示例

1
2
3
4
5
6
lateinit var username: String

fun initialize() {
    username = "Alice"
    println(username) // 輸出 Alice
}

5. 惰性初始化(lazy#

用於:宣告不可變變量時,僅在第一次使用時才初始化。

語法

1
val 變量名稱: 資料型別 by lazy { 初始化邏輯 }

示例

1
2
3
4
5
6
7
val message: String by lazy {
    println("初始化中...")
    "Hello, Kotlin!"
}

println(message) // 輸出 "初始化中..." 然後輸出 "Hello, Kotlin!"
println(message) // 只輸出 "Hello, Kotlin!"

6. 空安全與可空變量(nullable)#

Kotlin 對可空型別有專門的處理:

語法:用 ? 表示可空型別。

示例

1
2
3
4
5
var nullableName: String? = null
println(nullableName) // 輸出 null

nullableName = "Kotlin"
println(nullableName?.length) // 安全調用,輸出 6

Reference#

https://kotlinlang.org/docs/numbers.html

https://kotlinlang.org/docs/booleans.html

https://kotlinlang.org/docs/characters.html

https://kotlinlang.org/docs/strings.html

https://kotlinlang.org/docs/basic-syntax.html#variables

https://kotlinlang.org/docs/kotlin-tour-basic-types.html

© 2026 CodeReindeer. All rights reserved.