注:CocoaChina翻譯小組已著手此書及相關資料的翻譯,樓主也加入了,多人協作后的完整譯本將很快讓大家看到。
翻譯群:291864979,想加入的同學請進此群哦。(本系列不再更新,但協作翻譯的進度我會在留言里更新,謝謝大家支持?。?/strong>
截止至6月4日21:52,本書第一章已翻譯完成,其他各個章節均有小組成員認領翻譯。
大家可以到CocoaChina關注相關信息,或直接到Git Hub看到最新進度:https://github.com/CocoaChina-editors/Welcome-to-Swift
全書目錄:
一、Welcome to Swift
二、Language Guide
三、Language Reference
/*
譯者的廢話:
幾個小時前熬夜看了WWDC,各種激動,今年很有料啊!當看到Swift出來的時候,瞬間傻眼,又要學習新語言了。這篇文章來自蘋果官方的《The Swift PRogramming Language》一書,500頁左右,在蘋果官網有下載。Swift大家都沒實際用過,本翻譯一定是有各種錯漏的,各位多多包涵,我會不斷更新修正的。
——(博客園、新浪微博)葛布林大帝
*/
一、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來訪問它們的元素。
要創建一個空數組或字典,使用初始化語法。
如果類型信息可以推斷,你可以寫一個空數組為[]和一個空字典為[:] ——例如,當你設置一個變量的新值或參數傳遞給函數。
新聞熱點
疑難解答