2.Android Compose 基礎系列:在 Kotlin 中創建和使用變量
在應用開發中,有些內容是固定的,例如“設置”中的菜單項;而有些內容會不斷變化,比如新聞應用中的標題、來源或發布時間。為了讓這些變化自動更新,而不是每次都修改代碼,我們需要使用 變量(variable)。
?? 學習目標
- 了解什么是變量,并學會定義和更新變量
- 掌握如何為變量選擇合適的數據類型
- 學會在代碼中添加注釋,提升可讀性
什么是變量
在編程中,變量就像一個帶標簽的盒子,用來存放某個數據值。
- 標簽(變量名):告訴我們盒子里裝的是什么
- 盒子里的值:就是存放的數據
舉個例子:
- 盒子外寫著
name(表示名字) - 盒子里放著
"Alex"(表示名字的值)
當你想修改名字時,只需替換盒子里的值,而不必修改整個程序。
為什么需要變量
如果在代碼中直接寫死所有值,程序只能應對特定情況。
使用變量就像寫信時使用模板,只需替換不同內容即可應對多種情況:
尊敬的 { name }:
您好!很高興今天能在 { location } 與您會晤。希望 { date } 還能見到您。
祝您天天好心情!
同樣地,在應用中,你可以用變量來代替變化的數據:
- ?? 用戶名:
name - ?? 地點:
location - ? 時間:
date
這樣,應用就能根據不同用戶或場景自動生成對應內容,而不需要每次都重新編寫邏輯。
??Kotlin 常見數據類型
在定義變量時,需要指定變量能存儲的數據類型。Kotlin 提供了豐富的基本類型:
| 類型分類 | 數據類型 | 示例值 | 說明 |
|---|---|---|---|
| 整數類型 (整型) | Byte |
127 |
8位有符號整數(范圍:-128 ~ 127) |
Short |
32767 |
16位有符號整數(范圍:-32768 ~ 32767) | |
Int |
2147483647 |
32位有符號整數(范圍:-231 ~ 231-1) | |
Long |
9223372036854775807L |
64位有符號整數(需以 L 結尾) |
|
| 浮點類型 | Float |
3.14f |
32位單精度浮點數(需以 f 結尾) |
Double |
3.1415926 |
64位雙精度浮點數(默認浮點類型) | |
| 字符類型 | Char |
'A' |
單個字符,使用單引號包裹 |
| 布爾類型 | Boolean |
true / false |
邏輯真值類型 |
| 字符串類型 | String |
"Hello" |
字符序列,可用 """ 創建多行字符串 |
| 數組類型 | Array |
arrayOf(1, 2, 3) |
可存儲任意類型的元素 |
| 集合類型 | List |
listOf("A", "B") |
不可變列表 |
MutableList |
mutableListOf(1, 2, 3) |
可變列表 | |
Set |
setOf("A", "B") |
不可變集合(自動去重) | |
MutableSet |
mutableSetOf("A", "B") |
可變集合 | |
Map |
mapOf("key" to "value") |
不可變鍵值對集合 | |
MutableMap |
mutableMapOf("k" to "v") |
可變鍵值對集合 | |
| 空類型 | Any |
任意類型值 | Kotlin 所有類的超類 |
Unit |
Unit |
表示無返回值(相當于 Java 的 void) |
|
Nothing |
- | 表示不會返回(如拋異常的函數) | |
| 可空類型 | String?, Int? 等 |
null |
允許存儲 null 值的類型 |
?? 變量類型實際使用示例
地圖應用
- ?? 地點名稱:
String - ? 星級評分:
Double - ?? 評論數量:
Int - ?? 是否收藏:
Boolean
視頻應用
- ?? 視頻標題:
String - ?? 頻道名稱:
String - ?? 播放次數:
Int
?? 定義變量
定義變量的語法如下:
val 變量名: 數據類型 = 初始值

示例:
fun main() {
val count: Int = 2
println(count)
}
輸出結果:
2
提示:
val 表示不可變變量(定義后不能修改值)
var 表示可變變量(定義后可重新賦值)
類型推斷
如果 Kotlin 能根據初始值判斷類型,則可以省略類型聲明:
val count = 2 // 自動推斷為 Int
若未賦初始值,必須明確指定類型:
val count: Int //但直接這樣寫,會報錯,要用后面講解的其他只是修復
使用變量與字符串模板
要在字符串中插入變量值,可使用 字符串模板:
fun main() {
val count = 10
println("You have $count unread messages.")
}
輸出:
You have 10 unread messages.
${} 可在字符串中放入表達式,例如:
println("Total: ${5 + 3}")
基本數學運算
整數變量可以直接參與運算,例如加減乘除:
fun main() {
val unreadCount = 5
val readCount = 100
println("You have ${unreadCount + readCount} total messages.")
}
輸出:
You have 105 total messages.
4. 更新變量
在應用程序運行時,可能需要更新變量的值。例如購物車總金額會隨用戶操作而變化。
val 與 var
val:只讀變量,值不可更改。var:可變變量,值可更新。
示例:
fun main() {
var cartTotal = 0 // 聲明可變變量
println("Total: $cartTotal")
cartTotal = 20 // 更新變量值
println("Total: $cartTotal")
}
輸出:
Total: 0
Total: 20
增量運算符和減量運算符
可以使用表達式更新變量,例如增加或減少值:
fun main() {
var count = 10
println("You have $count unread messages.")
count = count + 1 // 增加 1
println("You have $count unread messages.")
count++ // 使用增量運算符,等同于 count = count + 1
println("You have $count unread messages.")
count-- // 使用減量運算符,等同于 count = count - 1
println("You have $count unread messages.")
}
You have 10 unread messages.
You have 11 unread messages.
You have 12 unread messages.
You have 11 unread messages.
提示:只有在變量值會發生變化時使用 var,否則優先使用 val 以保證代碼安全。
其他數據類型
Double
用于存儲小數,精度比 Float 高。
示例:
fun main() {
val trip1 = 3.20
val trip2 = 4.10
val trip3 = 1.72
val totalTripLength = trip1 + trip2 + trip3
println("$totalTripLength miles left to destination")
}
輸出:
9.02 miles left to destination
String
用于存儲文本,用雙引號包裹。可通過 + 進行字符串拼接。
fun main() {
val nextMeeting = "Next meeting: "
val date = "January 1"
val reminder = nextMeeting + date + " at work"
println(reminder)
}
輸出:
Next meeting: January 1 at work
字符串中使用引號需要轉義:
fun main() {
println("Say \"hello\"")
}
輸出:
Say "hello"
Boolean
只有兩個可能值:true 或 false。常用于表示開關狀態或條件判斷。
fun main() {
val notificationsEnabled = false
println(notificationsEnabled)
println("Are notifications enabled? " + notificationsEnabled)
}
輸出:
false
Are notifications enabled? false
編碼規范
在 Kotlin 中,建議遵循以下編碼規范,這是 Google 推薦使用并且其他專業開發者也在遵循的一種 Android 代碼統一編寫方式:
- 變量命名
- 使用 駝峰命名法(camelCase),以小寫字母開頭。
val discount: Double = 0.20
- 類型聲明空格
冒號后添加一個空格。
val discount: Double = 0.20
- 運算符空格
-
賦值運算符 =
-
加號 +、減號 -、乘號 *、除號 / 前后都應有空格。
var pet = "Dog"
val sum = 1 + 2
- 行長度
每行代碼建議不超過 100 個字符,方便閱讀和維護。
在代碼中添加注釋
編寫代碼時,建議使用注釋說明代碼用途,幫助讀者理解。
單行注釋
使用 //,通常在符號后添加一個空格:
// 這是一個注釋
height = 1 // 假設初始高度為 1
多行注釋
使用 /* ... */,適合超過 100 個字符的長注釋:
/*
* 這是一個很長的注釋
* 可以占用多行,只需要開始和結束,中間的*是為了好看寫的
*/
示例:單行注釋與多行注釋結合
/*
* 該程序顯示用戶收件箱中的消息數量
*/
fun main() {
// 創建一個變量表示未讀消息數量
var count = 10
println("You have $count unread messages.")
// 將消息數量減少 1
count--
println("You have $count unread messages.")
}
?? 提示:在常見的編輯器中輸入注釋時,IDE 會提供自動提示和快捷鍵支持,幫助你快速書寫注釋。注釋里面的*不需要手動寫完,編輯器會自動生成,后面章節會詳細講解。現在主要是讓大家了解注釋的作用。
總結
做得很好!您已經了解了 Kotlin 中的變量及其用途,掌握了如何創建、更新和使用變量,嘗試了不同的基本數據類型(Int、Double、String、Boolean),并了解了 val 與 var 的區別。
核心要點
- 變量是存儲單項數據的容器。
- 必須先聲明變量,才能使用。
val用于定義只讀變量,一旦賦值不可更改。var用于定義可變變量,可以更新值。- Kotlin 中建議盡可能使用
val。 - 變量聲明示例:
val count: Int = 2 - 類型推斷:提供初始值時可省略數據類型。
- 常見基本類型:Int、Double、String、Boolean、Float。
- 更新變量使用賦值運算符 =
- 只有 var 聲明的變量才能被更新。
- 增量運算符 ++ 用于加 1,減量運算符 -- 用于減 1。
- 可用于字符串拼接,也可將其他類型(如 Int、Boolean)拼接到字符串。
?? 引用與版權說明
- 本文內容部分參考自 Kotlin 官方文檔 及 Android Developers 官方指南,并結合作者的實戰經驗進行講解與整理。
- 文中圖片(如代碼結構示意圖)來源于官方圖床或官方文檔示例,僅用于教學與學習目的。
- 代碼示例均為原創或根據官方示例改寫,遵循 Apache License 2.0 協議。
- 若涉及版權問題或引用不當,請聯系作者進行處理。
浙公網安備 33010602011771號