注:CocoaChina翻譯小組已着手此書及相關資料的翻譯,樓主也加入了,多人協做後的完整譯本將很快讓你們看到。git
翻譯羣:291864979,想加入的同窗請進此羣哦。(本系列再也不更新,但協做翻譯的進度我會在留言裏更新,謝謝你們支持!)程序員
截止至6月4日21:52,本書第一章已翻譯完成,其餘各個章節均有小組成員認領翻譯。github
你們能夠到CocoaChina關注相關信息,或直接到Git Hub看到最新進度:https://github.com/CocoaChina-editors/Welcome-to-Swift編程
全書目錄:數組
1、Welcome to Swift安全
2、Language Guide框架
3、Language Reference編程語言
/*ide
譯者的廢話:函數
幾個小時前熬夜看了WWDC,各類激動,今年頗有料啊!當看到Swift出來的時候,瞬間傻眼,又要學習新語言了。這篇文章來自蘋果官方的《The Swift Programming Language》一書,500頁左右,在蘋果官網有下載。Swift你們都沒實際用過,本翻譯必定是有各類錯漏的,各位多多包涵,我會不斷更新修正的。
——(博客園、新浪微博)葛布林大帝
*/
1、Welcome to Swift
1.關於Swift
Swift是一種用於iOS和OS X應用的全新編程語言,它創建在最好的C和Objective-C語言中,而且沒有C語言的兼容性限制。Swift採用安全的編程模式,增長了現代功能使編程更容易、更靈活、更有趣。Swift背靠成熟且備受寵愛的Cocoa 和 Cocoa Touch框架的支持,這是一個從新構想軟件開發的機會。
Swift通過了數年的醞釀,Apple經過改進現有的編譯器、調試器和框架結構奠基了Swift的基礎,並經過Automatic Reference Counting(ARC)簡化了內存管理。Swift的framework stack創建在堅實的Foundation和Cocoa上,實現了現代化和完全標準化。 Objective-C自己已經逐步發展到到支持blocks、 collection literals 和modules,使框架不間斷的採用現代語言技術。
因爲這個基礎,咱們能夠爲從此的Apple軟件發展引入一種新語言。
對Objective-C開發者來講Swift看起來會很熟悉,它具備Objective-C的參數命名易讀性和動態對象模型的力量,提供了無縫接入現有Cocoa框架和與Objective-C混編的能力。基於這個共同點,Swift引入了許多新的特性、統一的程序和麪向對象的語言部分。
Swift對於新程序員是友好的,做爲一個具備表現力和娛樂性的腳本語言,它是第一個得到工業品質的系統編程語言。它支持playgrounds,一個容許程序員調試Swift代碼並當即看到結果,而無需反覆編譯運行程序的新功能。
Swift結合了最好的現代語言思惟和智慧 - 來自廣大的蘋果工程師文化。編譯器針對性能進行了優化,語言也進行了發展優化,而無需任何犧牲。它的設計從「Hello World」擴展到整個操做系統,這一切使得Swift對於開發者和Apple是一個有意義的投資。
Swift以極好的方式來編寫iOS和OS X應用,並將繼續發展新特性和功能。Swift充滿野心,咱們已經火燒眉毛看你能用它創造什麼。
2.Swift概覽
按照慣例,新語言的第一個程序應在屏幕上輸出「Hello, World」。在Swift裏,這隻須要一行來完成。
若是你寫過C或Objective-C代碼,這個語法看起來會很熟悉 —— 在Swift裏,這行代碼是一個完整的程序,你不須要爲input/output或字符串處理等功能導入一個單獨的庫。全部範圍內的代碼都做爲程序入口點,因此你不須要main函數,也沒必要在每一個語句的末尾寫分號。
此次概覽經過完成各類編程任務,來給你足夠的信息學習編寫Swift代碼。若是你有不明白的地方,不要擔憂,一切細節都會在本書後面詳細解釋。
注:爲得到最佳體驗,在Xcode裏把本章做爲一個playground打開,playground容許你編輯代碼清單,並當即看到結果。
2.1.簡單值
使用let建立一個常量,var建立一個變量。一個常量的值並不須要在編譯時已知,但你必須給它分配一次值,這意味着您可使用常量來命名一個你決定在多處使用的值。
常量或變量必須與你分配給它的值擁有相同的類型,然而,你並不老是必須明確寫出類型。當您建立一個常量或變量並分配一個值時,可讓編譯器推斷出其類型。在上面的示例中,編譯器推斷出myVariable是整數,由於它的初始值是一個整數。
若是初始值沒有提供足夠的信息(或者若是沒有初始值),能夠在變量後類型,用冒號隔開。
試驗:建立一個常數,明確爲float類型,值爲4
值永遠不會隱式轉換爲另外一種類型。若是你須要一個值轉換爲不一樣的類型,明確地建立一個所需類型的實例。
試驗:嘗試從最後一行除去String的轉換,你獲得了什麼錯誤?
還有一個更簡單的方法包含字符串值:把值寫在括號中 ,並在括號前寫一個反斜線(\)。例如:
試驗:使用(\),在一個string裏包含一個浮點計算,並在一個greeting裏包含某我的的名字。
使用方括號([])建立數組和字典,並在括號中寫出index和key來訪問它們的元素。
要建立一個空數組或字典,使用初始化語法。
若是類型信息能夠推斷,你能夠寫一個空數組爲[]和一個空字典爲[:] ——例如,當你設置一個變量的新值或參數傳遞給函數。