翻譯自蘋果的官方文檔:The Swift Programming Language。
簡介
Apple早先時候發布了Swift編程語言,本文從其發布的書籍《The Swift Programming Language》中摘錄和提取而成。希望對各位的iOS&OSX開發有所幫助。
Swift是供iOS和OS X應用編程的新編程語言,基於C和Objective-C,而卻沒有C的一些兼容約束。Swift采用了安全的編程模式和添加現代的功能來是的編程更加簡單、靈活和有趣。界面則基於廣受人民群眾愛戴的Cocoa和Cocoa Touch框架,展示了軟件開發的新方向。
Swift已經存在了多年。Apple基於已有的編譯器、調試器、框架作為其基礎架構。通過ARC(Automatic Reference Counting,自動引用計數)來簡化內存管理。我們的框架棧則一直基於Cocoa。Objective-C進化支持了塊、collection literal和模塊,允許現代語言的框架無需深入即可使用。(by gashero)感謝這些基礎工作,才使得可以在Apple軟件開發中引入新的編程語言。
Objective-C開發者會感到Swift的似曾相識。Swift采用了Objective-C的命名參數和動態對象模型。提供了對Cocoa框架和mix-and-match的互操作性。基於這些基礎,Swift引入了很多新功能和結合面向過程和面向對象的功能。
Swift對新的程序員也是友好的。他是工業級品質的系統編程語言,卻又像腳本語言一樣的友好。他支持playground,允許程序員實驗一段Swift代碼功能並立即看到結果,而無需麻煩的構建和運行一個應用。
Swift集成了現代編程語言思想,以及Apple工程文化的智慧。編譯器是按照性能優化的,而語言是為開發優化的,無需互相折中。(by gashero)可以從"Hello, world"開始學起並過渡到整個系統。所有這些使得Swift成為Apple軟件開發者創新的源泉。
Swift是編寫iOS和OSX應用的夢幻方式,並且會持續推進新功能的引入。我們迫不及待的看到你用他來做點什麼。
Swift 初見
通常來說,編程語言教程中的第一個程序應該在屏幕上打印“Hello, world”。在 Swift 中,可以用一行代碼實現:
- println("hello, world")
如果你寫過 C 或者 Objective-C 代碼,那你應該很熟悉這種形式——在 Swift 中,這行代碼就是一個完整的程序。你不需要為了輸入輸出或者字符串處理導入一個單獨的庫。全局作用域中的代碼會被自動當做程序的入口點,所以你也不需要main函數。你同樣不需要在每個語句結尾寫上分號。
這個教程會通過一系列編程例子來讓你對 Swift 有初步了解,如果你有什麼不理解的地方也不用擔心——任何本章介紹的內容都會在後面的章節中詳細講解。
注意:為了獲得最好的體驗,在 Xcode 當中使用代碼預覽功能。代碼預覽功能可以讓你編輯代碼並實時看到運行結果。
簡單值
使用let來聲明常量,使用var來聲明變量。一個常量的值在編譯時並不需要獲取,但是你只能為它賦值一次。也就是說你可以用常量來表示這樣一個值:你只需要決定一次,但是需要使用很多次。
- var myVariable = 42
- myVariable = 50
- let myConstant = 42
常量或者變量的類型必須和你賦給它們的值一樣。然而,聲明時類型是可選的,聲明的同時賦值的話,編譯器會自動推斷類型。在上面的例子中,編譯器推斷出myVariable是一個整數(integer)因為它的初始值是整數。
如果初始值沒有提供足夠的信息(或者沒有初始值),那你需要在變量後面聲明類型,用冒號分割。
- let implicitInteger = 70
- let implicitDouble = 70.0
- let explicitDouble: Double = 70
練習:創建一個常量,顯式指定類型為Float並指定初始值為4。
值永遠不會被隱式轉換為其他類型。如果你需要把一個值轉換成其他類型,請顯式轉換。
- let label = "The width is"
- let width = 94
- let widthLabel = label + String(width)
練習:刪除最後一行中的String,錯誤提示是什麼?
有一種更簡單的把值轉換成字符串的方法:把值寫到括號中,並且在括號之前寫一個反斜槓。例如:
- let apples = 3
- let oranges = 5
- let appleSummary = "I have \(apples) apples."
- let fruitSummary = "I have \(apples + oranges) pieces of fruit."
練習:使用\()來把一個浮點計算轉換成字符串,並加上某人的名字,和他打個招呼。
使用方括號[]來創建數組和字典,並使用下標或者鍵(key)來訪問元素。
- var shoppingList = ["catfish", "water", "tulips", "blue paint"]
- shoppingList[1] = "bottle of water"
-
- var occupations = [
- "Malcolm": "Captain",
- "Kaylee": "Mechanic",
- ]
- occupations["Jayne"] = "Public Relations"
要創建一個空數組或者字典,使用初始化語法。
- let emptyArray = String[]()
- let emptyDictionary = Dictionary<String, Float>()
如果類型信息可以被推斷出來,你可以用[]和[:]來創建空數組和空字典——就像你聲明變量或者給函數傳參數的時候一樣。
- shoppingList = [] // 去逛街並買點東西
更多詳情見請繼續閱讀下一頁的精彩內容: http://www.linuxidc.com/Linux/2014-09/106420p2.htm