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!