在 Swift 的程式語言設計初衷裡,與 Objective-C 相容是一個非常重視的設計概念,我們將了解 Objective-C 中,有什麼是可以不需要修正就可以直接被 Swift 使用。
Photo by @daveballew on Unsplash
Swift 在 2014 年 6 月的 WWDC 開發者大會上發布了,Swift 在發表的時候用的介紹詞是這樣的:
Programming language from Objective-C but without the C.
在當時,是非常轟動的事情,C 語言在 Objective-C 佔有很大的地位,而 Swift 吸取了 Objective-C 物件導向的經驗,去除了 C 語言容易出錯的部分,這在當時是難以想像的。
在 Swift (programming language): Comparisons to other languages - Wikipedia 這個章節中,詳細解釋了 Swift 與 C 語言/Objective-C 的異同,十分有趣!
在電腦科學中,關於資料的表達有一定的理論,而 Swift 沿用 C 語言的方式,使得 Swift 與 C 語言的基本型別有很大程度的共用。
我們知道 Swift 有 Int, Int8, Int16... 型別,而 C 語言則是 long, char, short...型別。
[勘誤] 因為平台關係,將好讀版本圖片放到留言區
Swift | C Language |
---|---|
Int8 | char, signed char |
UInt8 | unsigned char, short |
Int16 | short int,signed short, signed short int |
UInt16 | unsigned short, unsigned short int |
Int32 | int, signed, signed int |
UInt32 | unsigned, unsigned int |
Int/Int64 | long, long int, signed long, signed long int |
UInt/Int64 | unsigned long, unsigned long int |
Int | long long, long long int, signed long long, signed long long int |
UInt/UInt64 | unsigned long long, unsigned long long int |
Float | float |
Double | double |
Float80 | long double |
long double 有特別的定義,跟 IEEE 有關,建議閱讀 long double - Wikipedia