| 構造 | Swift 特色 |
| for-in | for i in 0..<5 { } (半開區間) / 0...5 (閉區間) |
| C風格for | for var i=0; i<5; i++ { } (Swift 3 移除,推薦 for-in) |
| if | 條件無需括號 if x > 0 { } |
| switch | 支持字符串、區間、元組、類型匹配;默認不貫穿,需 fallthrough 顯式貫穿 |
七、元組:多返回值利器
let product = (id: "AP234", name: "iPhone", price: 599)
product.id // 命名訪問
product.0 // 索引訪問
func getProduct() -> (String, Int, Double) { ... } // 多返回值
let (id, qty, price) = getProduct() // 解包
八、可選型:空安全核心
| 概念 | 語法 | 說明 |
| 聲明 | var s: String? | 默認 nil,非可選型不可為 nil |
| 強制解包 | s! | 確定非 nil 時使用,否則崩潰 |
| 可選綁定 | if let v = s { } | 安全解包,賦值給新常量 |
| 可選鏈 | obj?.prop?.method() | 鏈式調用,任一環為 nil 則短路返回 nil |
| 空合運算符 | s ?? "default" | nil 時提供默認值 |
核心價值:將「空指針異常」從運行時推遲到編譯期,強制開發者處理 nil 情況。
九、內存管理:ARC 共通點與差異
- 兩者均使用自動引用計數 (ARC),編譯期插入 retain/release。
- Swift 結構體/枚舉為值類型(棧分配,複製語義),無引用計數開銷。
- 循環引用解決:OC 用
__weak/weak,Swift 用 weak/unowned。
十、互操作:@objc、桥接、混編
- Swift 調用 OC:導入
#import "Project-Swift.h" (OC 端) / Project-Bridging-Header.h (Swift 端)。
- OC 調用 Swift:類需繼承
NSObject 並標記 @objc 或 @objcMembers。
- 類型橋接:
String ↔ NSString、Array ↔ NSArray、Dictionary ↔ NSDictionary 免費轉換。
Swift 以「安全、快速、表達力強」重新定義了蘋果平台開發。掌握上述核心差異,配合 Xcode 遷移工具與漸進式混編策略,可平滑實現代碼庫現代化。
- 上一篇文章: C語言錯誤處理機制:errno、strerror、perror 完整使用指南
- 下一篇文章: C 語言編譯與執行全流程深度解析:從原始碼到可執行檔案
Copyright ©
程式碼之家 All Rights Reserved