Swift 變數與常數 (Variables and Constants)
在 Swift 中,儲存資料的容器分為兩種:變數 (Variable) 和 常數 (Constant)。
這是 Swift 設計哲學中非常重要的一環:安全性。如果一個值在設定後不應該被改變,就應該宣告為常數。這讓編譯器能幫你檢查錯誤,也讓意圖更清晰。
宣告方式
變數 (var)
使用 var 關鍵字宣告變數。變數的值在初始化之後可以被修改。
var currentLoginAttempt = 1
currentLoginAttempt = 2 // 合法:變數可以改變值
常數 (let)
使用 let 關鍵字宣告常數。常數的值一旦設定,就不能再更改。
let maximumNumberOfLoginAttempts = 10
// maximumNumberOfLoginAttempts = 11 // 錯誤!常數不能被修改
原則上,預設總是使用
let。只有當你確定這個值將來必須改變時,才把它改成 var。這能讓你的程式碼更安全、效能更好 (編譯器能對常數做更多優化)。型別標註 (Type Annotation)
當你宣告變數或常數時,可以加上型別標註,說明這個變數要儲存什麼類型的資料。寫法是在變數名後面加上冒號 : 和型別名稱。
var welcomeMessage: String
welcomeMessage = "Hello"
這行程式碼的意思是:「宣告一個名為 welcomeMessage 的變數,它的型別是 String (字串)。」
型別推斷 (Type Inference)
雖然 Swift 是強型別語言,但你不需要每次都寫出型別。如果你在宣告變數同時賦予初始值,Swift 會聰明地從你的初始值推斷出變數的型別。
let meaningOfLife = 42
// Swift 自動推斷 meaningOfLife 的型別為 Int
// 因為 42 是一個整數
var pi = 3.14159
// Swift 自動推斷 pi 的型別為 Double
因為有型別推斷,大多數時候你都不需要顯式地寫出型別標註,這讓 Swift 寫起來非常簡潔。
變數命名
你可以用任何你喜歡的名字來命名變數,但通常我們遵循 駝峰式命名法 (lowerCamelCase):
- 第一個單字小寫
- 後續單字首字母大寫
- 例如:
myVariableName,userId,totalCount
let friendlyWelcome = "Bonjour!"
列印變數
我們在 Hello World 中學過 print,它也可以用來印出變數的值。
print(friendlyWelcome)
// 輸出:Bonjour!
若是想在字串中嵌入變數的值,可以使用 字串插值 (String Interpolation):將變數放入 \() 中。
let name = "Mike"
print("Hello, \(name)!")
// 輸出:Hello, Mike!