Swift 程式語言— About Swift

你有聽過 Swift 嗎?讓我來帶各位認識一下 iOS 的開發語言 Swift 吧!

Jeremy Xue
Jeremy Xue ‘s Blog
5 min readNov 21, 2018

--

前言:

Hi, 我是 Jeremy Xue,目前我在好想工作室自學 iOS 開發 (Swift) 大概剛好滿一年的時間,回想當初其實我從沒想過會繼續寫程式,但是因緣際會下一頭栽進 iOS 開發的世界後,就開啟我另一段奇妙的人生了 😏。

所以今天我想跟大家聊聊 Swift 這個程式語言,希望透過這邊文章不論你是不是本科系或非本科系的人,又或是有其他原因讓你想了解或是學習 Swift 這個語言,希望透過這篇文章能夠讓你對 Swift 有基本的了解。

然後最近也在 Medium 開了一個類似個人部落格的 Publications,想要帶領一些想學習的讀者學習,所以裡面會陸陸續續新增一些 Swift 語法的文章,也歡迎各位讀者 Follow。

絕非 Swift 傳教文章,雖然我是信仰我大蘋果的 😏

# About Swift

來看看 Swift 的自我介紹吧!

Swift 是編寫軟體的最好的方式,無論它是要用於手機、桌上型電腦、伺服器或是其他需要運行程式碼的軟體。它是一種安全、快速而且交互式的程式語言,它結合了現在最好語言思維和更廣泛的 Apple 工程文化的智慧以及來自開源( Open Source )社群的各種貢獻。其編輯器針對性能進行了優化,語言也針對開發進行了優化,而這兩者不會互相影響。

Swift 對於新加入程式開發的人( New Programmers )很友善,它是一個工業級的程式語言,與手稿語言( Scripting Language)一樣具有表現力和樂趣。在 Playground 編寫 Swift 的程式碼可以讓你測試程式碼並且立即查看到結果,而不需要去建構( Building )或是運行( Running )一個 App。

Swift 採用現代化程式設計模式來對於常見的編譯錯誤( Programming errors )定義了強大的類別(Classes ):

  • 變數(Variables )在使用前總是需要被初始化( Initialized )。
  • 檢查數組( Array )的索引( Index )是否有超出範圍的錯誤。
  • 檢查整數是否溢出( Overflow )。
  • 使用可選類型( Optionals )來確保明確處理 nil 的值。
  • 記憶體自動管理。
  • 錯誤處理( Error handing )允許從意外故障中受控恢復。

編輯和優化 Swift 程式碼以充分利用現代化硬體。其語法和標準庫基於指導原則( Guiding Principle ),所以使用明顯方式去編寫程式碼應該也是表現最好的。它的安全性和速度結合使 Swift 成為一個從 “Hello, world!” 到整個操作系統的最佳的選擇。

Swift 結合強大的型別推理( Type inference )、模式匹配( Pattern matching )以及現代化的輕量級語法,允許以清晰、簡潔的方式來表示複雜的想法。根據這些,程式碼不僅更容易編寫,而且更容易閱讀以及維護。

Swift 多年來一直不斷塑造、不斷持續發展出新的功能以及特性。我們對 Swift 的目標雄心勃勃,我們迫不急待想看你使用它創造出了什麼。

#個人心得:

其實當初在大學時期的程式能力其實沒有很好,對於其它程式語言都有一定的障礙 😂,然後大學四年級選修偶然的選到了「 iOS應用程式開發 」的課程,發現這個程式語言的開發與其它的程式的開發很不一樣,這也是我為什麼畢業之後選擇 iOS 的原因。

Swift 這個語言有點像是集眾家大成的感覺,他累積了許多程式語言的優點並且去除他的優點,學習起來相對也比其他程式語言容易,它也擺脫過去過去 iOS 的程式語言 Objective-C 這種冗長複雜的程式碼,Swift 這個語言非常簡潔而且可讀性很高,在編寫 Swift 程式碼的時候就像是自然地說出一句話,因此 Swift 編寫起來十分容易、友善。

加上它有 Storyboard 這個強大的功能,你可以在 Storyboard 上放上各種的元件,而這個畫面就會跟你 App 中的畫面相同,有點像是所見即所得的概念,加上可以透過 IBAction 以及 IBOutlet 讓元件與程式碼連結,所以對於新手在開發的時候十分友善。

Xcode 中還有一個練習 Swift 語法最好的地方 — Playground ,你可以在這邊練習各種語法( for in 、 if / else )等等,你可以非常快速的在下方區域看見程式碼運行後的結果,在剛加入時是個很好的練習語法的地方。

By the way, 現在 Playgorund 還真的是蠻卡的 …

後記:

其實學了一年的時間,真的覺得 Swift 是一個非常親民的語言( 絕非傳教 ),當初也是受到 Swift 各種友善的禮遇。但是這些同時可能帶來一些弊端,可能有些人會認為寫程式就是這樣開發,過分依賴 Storyboard 來開發,導至 Storyboard 上堆疊了許多元件,也讓專案載入時也十分緩慢。當然,你會看到許多公司依然還是希望使用 Objective-C 來開發,雖然兩個語言骨子裡是相同的,但是兩者還是有存在一些不同的差異的,只是 Swift 編譯起來容易而已。

#資料來源:

--

--

Jeremy Xue
Jeremy Xue ‘s Blog

Hi, I’m Jeremy. [好想工作室 — iOS Developer]