Swift語言入門教程

來源:互聯網
上載者:User

關於Swift

Swift是為IOS和OSX應用制定的新程式設計語言,吸取C和Objective-C語言的精粹,但不損失與C語言的相容性。Swift採用安全編程模型、加入了各種現代程式設計語言特性,使得該語言更易被掌握、更具擴充性,用起來更有趣。Swift語言的奠基石是已經成熟的、並為大家所喜愛的Cocoa和Cocoa Touch架構,新語言使大家可以盡情暢想新軟體開發的機遇。

Swift沉積了多年的研發成果,蘋果公司為提供高效Swift語言編譯器、調試器和基礎架構打下了堅實基礎。我們使用Automatic Reference Counting(ARC)技術簡化記憶體管理。我們的架構設計,建立在Cocoa穩固的基礎架構上。已經徹底完成了標準化和現代化的改進。Objective-C的改進支援了塊定義,集合文法、模組,使語言架構合理整合了現代語言技術。要感謝前人的基礎工作,使我們現在能夠向大家介紹蘋果公司未來的軟體開發語言。

對Objective-C開發人員來說,Swift是比較容易上手的,它採用和Objective-C類似的參數命名規則和強大的動態物件模型。它提供無縫的使用Cocoa架構和與Objective-C代碼混合即用的互操作特性。構建在這些基礎上,Swift語言帶來了許多新的特性、也重新整合了過程式語言和物件導向語言功能。

對新學習編程的人來說,Swift語言是門友好的語言。一門作為工業前沿的系統程式設計語言,Swift語言能夠象指令碼語言一樣易於表述和理解。它支援“playgrounds”技術,作為一項革新功能,開發人員可以使用它進行Swift的即時運行和直觀地看到結果,而不用從頭重新編譯運行程式。

Swift整合了現代電腦語言的智慧,匯入了蘋果公司軟體研發的精粹。Swift編譯器針對效能進行了最佳化,而語言本身也針對現有的開發環境進行了最佳化,功能和效能得到平衡和發展。它能夠設計小到“hello world”程式、大到作業系統層級的程式。所有這一切使swift語言對開發人員和蘋果公司來說都將更有吸引力。

使用Swift語言編寫iOS和OS X應用將非常愉悅,它將繼續發展新的語言特性、包含更多功能。我們對Swift的發展雄心勃勃,也迫不及待地將這個工具送給大家去使用、去創造。

Swift入門之旅

學習一門新的電腦語言,傳統來說都是從編寫一個在螢幕上列印“Hello world”的程式開始的。那在Swift,我們使用一句話來實現它:

println("Hello, world")

如果你編寫過C或者Objective-C語言,Swift中的這個文法看起來便很熟悉,這句話卻是一個完整的程式。你無須為了得到輸入/輸出或字串處理去匯入一個獨立的功能庫。編寫全域代碼通常用於程式的進入點。你不需要寫一個main函數,你也不需要為每個語句寫個逗號作為結尾。

這個入門之旅將給你足夠的資訊去開始編寫Swift代碼,你可以實現許多的編程任務。這個過程中如果你有些內容不理解也不要擔心,我們將在本書的其他章節細節處為您解釋。

批註:

為了更好的體驗開發,請在Xcode中使用playground編輯這個章節的代碼。Playgrounds允許你在一邊編輯代碼的同時看到代碼的即時運行結果。

簡單賦值:

用於你把一個常量和變數作為成變數。常量的值不必每次都傳給編譯器,但你必須提前賦個數值給它。就是說常量可以賦值一次而多處引用。

var myVariable = 42

myVariable = 50

let myConstant = 42

相同的類型才能進行常量和變數的賦值,但是,你不用每次都顯式地定義類型,編譯器可以自動判斷。建立常量或變數的時候順便賦值可以讓編譯器知道它屬於什麼類型。上面的例子,編譯器指定myVariable變數屬於整數類型,因為它用一個整數進行初始化。

如果初始值不能表達足夠的類型資訊(或沒有初始值),則在變數後面加一個冒號和指定的類型。

let implicitInteger = 70

let implicitDouble = 70.0

let explicitDouble: Double = 70

練習:

顯式建立一個值為4的浮點類型的常量

賦值不會自動隱式地變成另外一種類型,如果你需要把一個賦值變更到另外一種類型,你需要顯式地建立目標類型的執行個體。

let label = "The width is "

let width = 94

let widthLabel = label + String(width)

練習:

試著把最後一行的字串轉換聲明去掉,看看會出什麼錯誤?

這裡有更簡便的方法把數值包含在字串裡面:把數值寫在括弧裡面,把斜杠寫在括弧前面,樣本如下:

let apples = 3

let oranges = 5

let appleSummary = "I have \(apples) apples."

let fruitSummary = "I have \(apples + oranges) pieces of fruit."

實驗:

在字串中使用 \()包含一個浮點計算結果,同時也包含對某個人的名字和祝詞。

使用方括弧([])建立數組和字典,然後在方括弧中使用索引下標存取各元素的值。

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.bianceng.cnhttp://www.bianceng.cn/Programming/extra/

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.