技術支援熱線:http://www.lcpower.cn
全書資料夾:
一、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採用安全的程式設計模式,新增了現代功能使程式設計更easy、更靈活、更有趣。
Swift背靠成熟且備受寵愛的Cocoa 和 Cocoa Touch框架的支援,這是一個又一次構想軟體開發的機會。
Swift經過了數年的醞釀,Apple通過改進現有的編譯器、偵錯程式和框架結構奠定了Swift的基礎,並通過Automatic Reference Counting(ARC)簡化了記憶體管理。Swift的框架建立在堅實的Foundation和Cocoa上。已實現現代化和徹底標準化。 Objective-C本身已經逐步發展到到支援blocks、 collection literals 和modules,使框架採用不中斷的現代語言技術。感謝這個基礎。我們能夠為Apple軟體發展的未來引入一種新語言。
對Objective-C開發人員來說Swift看起來非常熟悉。它具有Objective-C命名引數的可讀性和動態物件模型的力量,提供了無縫接入現有Cocoa框架和與Objective-C混編的能力。
建立在這個共同點上,Swift引入了很多新的特性、統一的程式和麵向物件的語言部分。
Swift對於新程式猿是友好的。作為一個具有表現力和娛樂性的指令碼語言,它是第一個獲得工業品質的系統程式語言。它支援playgrounds。一個同意程式猿除錯Swift程式碼並馬上看到結果,而無需重複編譯執行程式的新功能。
Swift結合了最好的現代語言思維和智慧 - 來自廣大的蘋果project師文化。
編譯器針對效能進行了優化。語言也進行了發展優化,而無需不論什麼犧牲。它的設計從“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來訪問它們的元素。
要建立一個空陣列或字典。使用初始化語法。
假設型別資訊能夠判斷,你能夠寫一個空陣列為[]和一個空字典為[;] ——比如。當你設定一個變數的新值或引數傳遞給函式。