iT邦幫忙

2025 iThome 鐵人賽

DAY 2
0
Mobile Development

Swift iOS 開發新手村:從入門到 AI 聊天室系列 第 2

Day 2|Swift 資料存放密技:變數、常數與基本型別一次搞懂!

  • 分享至 

  • xImage
  •  

昨天我們認識了 Swift,也跑出人生第一個 Hello, World

今天,我們將學會 Swift 的基礎語法,這些是寫 App 一定會用到的東西。掌握它們,我們就可以跟程式「對話」了!

今日學習重點

  • let 和 var 的差別與使用時機
  • Swift 常見資料型別(Int、Double、String、Bool)
  • 型別標註(Type Annotation)
  • 資料型別變數、常數宣告
  • 字串插值 (String Interpolation)

let 與 var 的差別與使用時機

基本差別

關鍵字 可否修改值 用途
var 可以修改 用於需要在程式中變動的資料
let 不可修改 用於常數,值一旦設定就不能更改
var age = 25
age = 26  // 可以修改

let birthYear = 1998
// birthYear = 1999  // 會導致編譯錯誤,let 宣告的常數無法更改

使用時機建議

  1. 預設使用 let
    • 先假設值不會改變,提升程式安全性,避免意外修改。
  2. 必要時使用 var
    • 當資料需要變動,例如計數器、使用者輸入、計算結果,才使用 var。
  3. 函式與迴圈內變數
    • 可以依情況選擇 let 或 var,但能用 let 就用 let,減少 Bug 風險。

實務建議

  • 透過 let 強制不可變性,可以讓程式更容易理解與維護。
  • 使用 var 需要小心管理狀態變化,避免資料意外被改寫。

Swift 常見的資料型別

型別 說明 範例
Int 整數 let year: Int = 2025
String 文字字串 let greeting: String = "Hello, iOS!"
Double 浮點數(小數) let pi: Double = 3.14
Bool 布林值(真或假) let isSwiftFun: Bool = true

「型別」是什麼?

型別就是告訴電腦:「這東西是什麼類型?」
像是你說「我有 3 顆蘋果」這裡的「3」是整數,
「我的名字是 Melodia」裡的「Melodia」是文字。

Swift 要知道你手上的是什麼東西,才能幫你做正確的運算和操作。

型別標註(Type Annotation)

在你宣告變數或常數的時候,其實可以主動標明它的型別,這種做法叫做「型別標註(Type Annotation)」。

語法很簡單,只要在變數名稱後面加上冒號「:」,然後寫上型別名稱:

// 宣告一個變數,指定為整數,還沒給初始值
var score: Int

// 宣告一個常數,明確指定這是字串
let name: String = "Melodia"

這麼做的好處是能幫助程式更清楚知道你要存的是什麼類型的資料。

但說實話,在實務上我們不太需要每次都寫出型別標註,
因為 Swift 很聰明,會根據你給的值自動判斷型別(這稱作型為別推論)。

例如,下面這兩段程式碼其實效果一樣:

// 加上型別標註
let city: String = "Taipei"

// 靠 Swift 自己判斷(型別推論)
let city = "Taipei"

兩種方式都可以,你可以選擇你覺得清楚的寫法。
不過如果沒給初始值,就一定要加上型別,這樣程式才知道要預留什麼型別的空間給變數哦!

整數 (Int)

整數就是沒有小數點的數字,可以是正的、負的,像是:

var temperature: Int = -5
var apples: Int = 3

浮點數(Float 與 Double)

在 Swift 中,有兩種主要的浮點數型別:Float 和 Double。

型別 名稱 位元數 精確度 說明
Float 單精度浮點數 32-bit 約 6 位小數 佔用記憶體較少,但精確度較低。
Double 雙精度浮點數 64-bit 約 15 位小數 佔用記憶體較多,但精確度高得多。

你該用哪一個?Swift 的預設與建議

這個問題的答案很簡單:永遠優先使用 Double

因為現代的 iPhone 和 Mac 處理器在計算 Double 時速度非常快,而且更高的精確度可以避免很多潛在的錯誤。因此,Swift 非常聰明地將 Double 設定為預設的浮點數型別。

當你寫下一個帶有小數點的數字時,Swift 會自動將它推論為 Double。

// Swift 會自動將 pi 推論為 Double
let pi = 3.14159

// 在特別需要節省記憶體或效能時手動宣告為 Float
let gravity: Float = 9.8

給初學者的建議: 在學習初期,你可以先忽略 Float,在所有需要小數的場合都放心使用 Double 就可以了。

布林值(Bool)

布林值只有兩種:真(true)或假(false),就跟開關一樣。

var isLightOn: Bool = true
var isRaining: Bool = false

在程式裡經常用來判斷、決定要不要做什麼事。

文字字串(String)

文字就是一串字,比如你的名字、訊息等,它的寫法是放在雙引號裡:

var name: String = "Melodia"
var greeting = "Hello, World!"

也可以把其他變數放進文字裡,這裡我們使用 字串插值 (String Interpolation)
它的語法非常簡單:只要把你想嵌入的內容,用 \() 包起來即可:

var age = 25
let message = "I am \(age) years old."

要特別注意的是,如果沒有特別做型別標註的話,那 Swift 會將類似於 c 的字元視為 String 型別。
除非你特別加上型別標註才會是 Character:

let str1 = "Swift"       // 是 String
let str2 = "A"           // 雖然只有一個字,但還是 String
let letter: Character = "c" // 加上型別標註,才是 Character

小結一下

今天我們學會了 Swift 中的基礎語法,包括常見的資料型別(整數、浮點數、布林、字串)、變數與常數的宣告方式、型別標註與型別推論,還有怎麼把變數嵌入字串中進行輸出。這些是所有 Swift 程式的骨幹,有點像是「說話的語法」,掌握它們,你已經開始會「跟電腦對話」啦!

🌟 明天預告

你有沒有想過,如果一個變數有可能沒有值,那該怎麼處理?
直接使用會當機?不會出錯?還是…Swift 有辦法幫你守住這道防線?

明天,我們將探索 Swift 非常特別也非常重要的語法──「可選型別(Optional)」,學會如何正確處理資料可能為 nil 的情況,還會帶你認識「強制解析」與「隱式解析」這些關鍵技巧,讓你的程式更安全、更聰明!

敬請期待《Day 3|Swift 可選型別全攻略:從安全解包到隱式解析,告別程式崩潰恐懼!》


上一篇
Day 1|30 天挑戰 iOS 開發,你敢不敢跟我一起?
下一篇
Day 3|Swift 可選型別全攻略:從安全解包到隱式解析,告別程式崩潰恐懼!
系列文
Swift iOS 開發新手村:從入門到 AI 聊天室6
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言