Swift簡(jiǎn)介(一)

就是現(xiàn)在,還有大量iPhone或iPad使用著objective-C.objective-C是比較兩極分化的編程語言,讓人又愛又恨.在2014年WWDC,蘋果公司發(fā)布了Swift.對(duì)于經(jīng)常使用面向?qū)ο蟮某绦騿T(Java,C++).理解Swift起來更容易些.

1.0 Swift基礎(chǔ)


Xcode6最好的新功能就是playground,你在這里可以盡情的使用代碼,不需要?jiǎng)?chuàng)建一個(gè)環(huán)境來運(yùn)行它,輸入代碼,并查看結(jié)果即可.

創(chuàng)建playground. 啟動(dòng)Xcode.

Get started with a playground


隨便起個(gè)名字,進(jìn)入下一步,你會(huì)看到下面界面

當(dāng)然你也可以在playground中任意添加代碼,或者修改實(shí)例代碼,看看會(huì)發(fā)生什么

A-1 新創(chuàng)建的playground


1.1 playground,注釋,變量,常量

如你所見,playground被分割成兩塊區(qū)域,代碼在左側(cè),執(zhí)行結(jié)果在右側(cè). 在你輸入代碼時(shí).Swift編譯器進(jìn)行編譯并執(zhí)行,幾乎能立即顯示結(jié)果. 在A-1中的代碼聲明了一個(gè)名為str的變量并賦值字符串"Hello, playground". 你可以看右側(cè)看到結(jié)果.試試改變這個(gè)值,可以注意到當(dāng)你停止輸入的時(shí)候,結(jié)果會(huì)立即進(jìn)行匹配更新.

最上邊一行的代碼是一個(gè)注釋.任何在//后且在回車符之前的字符都會(huì)被編譯器忽略. 當(dāng)然你不習(xí)慣獨(dú)占一行的注釋的話,也可以在代碼后添加注釋(不過不推薦這樣注釋):

var str = "Hello, playground" //這句話是個(gè)注釋

如果要編寫超過一行的注釋,可以將/*用作開頭,*/用作結(jié)尾:

/*

這是一行超過一行

的注釋

*/

當(dāng)然有各種不同的方式,來寫一個(gè)多行注釋.有些人喜歡表達(dá)清晰,每行的注釋由一個(gè)*字符開始:

/*

*這是一段超過一行

*的注釋

*/

第三行的import語句,使UIkit框架可以在playground上使用

import UIkit

?iOS有很多框架,UIkit是用戶界面框架,在我們所有的代碼示例中都將使用此框架.你會(huì)經(jīng)常使用的另一個(gè)框架是Foundation,其中的類提供一些基本功能,如日期和時(shí)間處理,文件管理,網(wǎng)絡(luò)等.要使用,訪問這個(gè)框架你需要導(dǎo)入它:

import Foundation

提醒:UIkit會(huì)自動(dòng)導(dǎo)入Foundation,因此任何導(dǎo)入U(xiǎn)Ikit的playground也可以自由訪問Foundation,無需再添加一個(gè)明確的import語句.

第5行是在playground中的可執(zhí)行代碼:

var str = "Hello, playground"?

現(xiàn)在我們?cè)囍薷牡?行的代碼:

var str:String

str = "Hello, playground"

你肯定感覺,這不是一樣的呢. 等價(jià)于原來的老代碼,但是你現(xiàn)在明確了一個(gè)str為一個(gè)字符串變量(String是Swift的類型,代表字符串).在大多數(shù)情況下,最好將聲明和初始化結(jié)合起來,并允許編譯器來推斷變量的類型.

下面是另外一個(gè)例子,它使用了Swift的類型推斷功能:

這里,編譯器推斷變量是整型.(將鼠標(biāo)懸停在number上,并按下Option鍵,鼠標(biāo)光標(biāo)將變成一個(gè)問號(hào)標(biāo)記.然后點(diǎn)擊鼠標(biāo),Swift會(huì)彈出框里顯示出推斷此變量的類型,如下圖所示)

獲取變量的推斷類型

不聲明變量的類型并不意味著它沒有類型或者可以對(duì)它隨心所欲地設(shè)定類型.變量聲明的時(shí)候,Swift會(huì)分配一個(gè)類型,你必須堅(jiān)持這種類型.與JavaScript這樣的動(dòng)態(tài)語言不同,你不能簡(jiǎn)單地通過指定一個(gè)新值改變一個(gè)變量的類型.

var number = 2

number = "haha"

試圖將一個(gè)字符串賦值給一個(gè)整形變量是錯(cuò)誤的,你會(huì)看到一條紅色標(biāo)記出現(xiàn)在playground的左側(cè).點(diǎn)擊它,Swift會(huì)顯示出一條消息,解釋出現(xiàn)的問題.

Swift不是動(dòng)態(tài)語言.你不能改變一個(gè)變量的類型

事實(shí)上,在編寫Swift的時(shí)候,提示的有些錯(cuò)誤的信息會(huì)有點(diǎn)難以理解(當(dāng)然這里提示的錯(cuò)誤比較明顯了).

你可能已經(jīng)注意到,我們沒有在聲明的末尾添加分號(hào).這就是Swift許多很棒的小功能之一.如果你已經(jīng)習(xí)慣了C,C++,OC或者Java編寫代碼,可能第一時(shí)間,你會(huì)感覺很奇怪,但一段時(shí)間后,你就會(huì)習(xí)慣它.當(dāng)然,你可以輸入分號(hào),但是這完全沒有必要. ?當(dāng)然有一種情況下,必須寫 分號(hào),即必須在同一行內(nèi)寫2個(gè)語句.下面的代碼是無效的:

var count = 2 count = 3

這里編譯器會(huì)提示你,應(yīng)該添加一個(gè)分號(hào).

需要填分號(hào)的情況

如上圖這行代碼所示,你可以改變一個(gè)變量的值.這就是為什它被稱為一個(gè)變量的原因了.要是想將一個(gè)名稱賦予固定值? 換句話說,你要?jiǎng)?chuàng)建一個(gè)常量,并給他一個(gè)名字.為此,Swift提供了let 語句.語法上let 類似于var 但是必須提供一個(gè)初始值.

let pi = 3.14159265

與變量相似,Swift也可以推斷常量的類型,但你不能重新給常量賦值:

pi = 42 //錯(cuò)誤

當(dāng)然,你可以使用常量來給變量賦值

let pi = 3.14159265

var value = pi


如你所見,Swift會(huì)在可執(zhí)行代碼的右側(cè)打印結(jié)果.你也可以調(diào)用Swift標(biāo)準(zhǔn)庫(kù)print()函數(shù)來創(chuàng)建輸出結(jié)果.比如:

var str:String

str = "Hello, playground"

print(str)

字符串"Hello, playground"像往常一樣出現(xiàn)在playground右側(cè)的輸出區(qū)域,但它也在控制臺(tái)輸出.要查看控制臺(tái)輸出,將鼠標(biāo)懸停在結(jié)果區(qū)域,你看到一個(gè)圓角控件出現(xiàn),點(diǎn)擊右側(cè)的控件,playground的控制臺(tái)就會(huì)打開.

在playground的控制臺(tái)查看輸出

? 當(dāng)你在一個(gè)循環(huán)當(dāng)中執(zhí)行代碼時(shí),控制臺(tái)輸出是非常有用的.在這種情況下,右側(cè)區(qū)域不會(huì)顯示每次迭代的輸出,但是輸出臺(tái)會(huì)顯示.

未完待續(xù)...

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容