Swift初體驗

jopen 9年前發布 | 12K 次閱讀 Swift Apple Swift開發

因為工作需要,寫了一個post文本到todaysmeet的小工具。工具不是重點,主要是這次是使用Swift寫程序,寫一點感受。

一、文件結構變化

新建工程,發現親切的main函數沒了,還真有些不習慣。其實動態語言早就把main去掉了,沒了main函數寫起來更隨心所欲。代碼從上至下執行,有那么點動態語言的意思。
import也做了簡化,同一工程中不再需要手動包含。這要多虧編譯器的智能,想起之前文件總是被人塞一大堆頭文件引用,現在除了第三方framework,其它完全不需要。

二、單一類文件

類的聲明和實現都在同一文件中了,以后工程文件數量直接減少一半。這種做法早被java廣泛實踐過了,好處自然不必細說。以后不必糾結 跳轉到定義/聲明 之間的區別。附帶還有一個好處:給第三方提供代碼時被強制使用接口。

三、后置聲明

第一次見到這種聲明方式是在go語言上,其驚訝程度不亞于寫C的人第一次看到Objective-C的方括號!明顯是用過之后才能體會他的美妙。后置聲明有幾個明顯的好處:

  1. 使用者更關注變量而非變量的類型。Swift作為一門強類型的語言,是有意弱化開發者對類型的關注度,包括隨處可見的自動類型推導。
  2. 避免類型理解混淆。C語言類型聲明很復雜,特別是函數指針。現在Swift也有些函數化編程的傾向,包括加強了的閉包,如不修改聲明方式,這種返回類型很難寫。
  3. 省略返回值。現在函數返回void可以省略了
  4. </ol>

    四、可選類型

    不知道這是不是Swift首先發明的,能極大的增強程序的健壯性,可以避免很多對nil的錯誤訪問。由于對可能的錯誤返回預知,Swift這次去掉了異常!
    拋出異常其實是很不好的設計,它假設調用者已正確處理好,反而降低了調用者對錯誤的判斷,從而導致crash。比如C++捕獲異常開銷非常大,還有潛在的內存泄漏,真是一大敗筆。我特別支持去掉異常,轉而通過代碼顯式錯誤處理。

    五、語言優化

    這次終于有了常量,對編譯器優化多少有點作用。
    條件判斷的隱示轉換,這次去掉了,風格上有了統一。
    字符串插值借鑒了ruby,方便了不少。


    總結:以上只是在寫todaysmeet中的一些感受,官方文檔中還有更多有趣的高級特性。Swift這門新語言確實吸收了很多語言的長處,寫起來很暢快,又不犧牲運行效率。只是目前還處于發展中,等到穩定還需要一些時間。但毋庸置疑的是,Swift絕對比Objective-C更好用。

    </div> 來自:http://annidy.github.io/blog/2015/03/31/first-use-swift/

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!