資源描述:
《apple swift編程語(yǔ)言入門(mén)教程》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫(kù)。
1、1???簡(jiǎn)介今天凌晨Apple剛剛發(fā)布了Swift編程語(yǔ)言,本文從其發(fā)布的書(shū)籍《TheSwiftProgrammingLanguage》中摘錄和提取而成。希望對(duì)各位的iOS&OSX開(kāi)發(fā)有所幫助。Swift是供iOS和OSX應(yīng)用編程的新編程語(yǔ)言,基于C和Objective-C,而卻沒(méi)有C的一些兼容約束。Swift采用了安全的編程模式和添加現(xiàn)代的功能來(lái)是的編程更加簡(jiǎn)單、靈活和有趣。界面則基于廣受人民群眾愛(ài)戴的Cocoa和CocoaTouch框架,展示了軟件開(kāi)發(fā)的新方向。Swift已經(jīng)存在了多年。Apple基于已有的編譯器、調(diào)試器、框架作為其基礎(chǔ)架構(gòu)。通過(guò)ARC(Autom
2、aticReferenceCounting,自動(dòng)引用計(jì)數(shù))來(lái)簡(jiǎn)化內(nèi)存管理。我們的框架棧則一直基于Cocoa。Objective-C進(jìn)化支持了塊、collectionliteral和模塊,允許現(xiàn)代語(yǔ)言的框架無(wú)需深入即可使用。(bygashero)感謝這些基礎(chǔ)工作,才使得可以在Apple軟件開(kāi)發(fā)中引入新的編程語(yǔ)言。Objective-C開(kāi)發(fā)者會(huì)感到Swift的似曾相識(shí)。Swift采用了Objective-C的命名參數(shù)和動(dòng)態(tài)對(duì)象模型。提供了對(duì)Cocoa框架和mix-and-match的互操作性。基于這些基礎(chǔ),Swift引入了很多新功能和結(jié)合面向過(guò)程和面向?qū)ο蟮墓δ堋wif
3、t對(duì)新的程序員也是友好的。他是工業(yè)級(jí)品質(zhì)的系統(tǒng)編程語(yǔ)言,卻又像腳本語(yǔ)言一樣的友好。他支持playground,允許程序員實(shí)驗(yàn)一段Swift代碼功能并立即看到結(jié)果,而無(wú)需麻煩的構(gòu)建和運(yùn)行一個(gè)應(yīng)用。Swift集成了現(xiàn)代編程語(yǔ)言思想,以及Apple工程文化的智慧。編譯器是按照性能優(yōu)化的,而語(yǔ)言是為開(kāi)發(fā)優(yōu)化的,無(wú)需互相折中。(bygashero)可以從"Hello,world"開(kāi)始學(xué)起并過(guò)渡到整個(gè)系統(tǒng)。所有這些使得Swift成為Apple軟件開(kāi)發(fā)者創(chuàng)新的源泉。Swift是編寫(xiě)iOS和OSX應(yīng)用的夢(mèng)幻方式,并且會(huì)持續(xù)推進(jìn)新功能的引入。我們迫不及待的看到你用他來(lái)做點(diǎn)什么。2???
4、Swift入門(mén)一個(gè)新語(yǔ)言的學(xué)習(xí)應(yīng)該從打印"Hello,world"開(kāi)始。在Swift,就是一行:println("Hello,world")如果你寫(xiě)過(guò)C或Objective-C代碼,這個(gè)語(yǔ)法看起來(lái)很熟悉,在Swift,這就是完整的程序了。你無(wú)需導(dǎo)入(import)一個(gè)單獨(dú)的庫(kù)供輸入輸出和字符串處理。全局范圍的代碼就是用于程序的入口,所以你無(wú)需編寫(xiě)一個(gè)?main()?函數(shù)。你也無(wú)需在每個(gè)語(yǔ)句后寫(xiě)分號(hào)。這個(gè)入門(mén)會(huì)給出足夠的信息教你完成一個(gè)編程任務(wù)。無(wú)需擔(dān)心你還不理解一些東西,所有沒(méi)解釋清楚的,會(huì)在本書(shū)后續(xù)詳細(xì)講解。Note作為最佳實(shí)踐,可以將本章在Xcode的playgr
5、ound中打開(kāi)。Playground允許你編輯代碼并立即看到結(jié)果。3???簡(jiǎn)單值使用?let?來(lái)定義常量,?var?定義變量。常量的值無(wú)需在編譯時(shí)指定,但是至少要賦值一次。這意味著你可以使用常量來(lái)命名一個(gè)值,你發(fā)現(xiàn)只需一次確定,卻用在多個(gè)地方。varmyVariable=42myVariable=50letmyConstant=42Notegashero注記這里的常量定義類似于函數(shù)式編程語(yǔ)言中的變量,一次賦值后就無(wú)法修改。多多使用有益健康。一個(gè)常量或變量必須與賦值時(shí)擁有相同的類型。因此你不用嚴(yán)格定義類型。提供一個(gè)值就可以創(chuàng)建常量或變量,并讓編譯器推斷其類型。在上面例子
6、中,編譯其會(huì)推斷myVariable是一個(gè)整數(shù)類型,因?yàn)槠涑跏蓟稻褪莻€(gè)整數(shù)。Notegashero注記類型與變量名綁定,屬于靜態(tài)類型語(yǔ)言。有助于靜態(tài)優(yōu)化。與Python、JavaScript等有所區(qū)別。如果初始化值沒(méi)有提供足夠的信息(或沒(méi)有初始化值),可以在變量名后寫(xiě)類型,以冒號(hào)分隔。letimlicitInteger=70letimlicitDouble=70.0letexplicitDouble:Double=70Note練習(xí)創(chuàng)建一個(gè)常量,類型為Float,值為4。值永遠(yuǎn)不會(huì)隱含轉(zhuǎn)換到其他類型。如果你需要轉(zhuǎn)換一個(gè)值到不同類型,明確的構(gòu)造一個(gè)所需類型的實(shí)例。let
7、label="Thewidthis"letwidth=94letwidthLabel=label+String(width)Note練習(xí)嘗試刪除最后一行的String轉(zhuǎn)換,你會(huì)得到什么錯(cuò)誤?還有更簡(jiǎn)單的方法來(lái)在字符串中包含值:以小括號(hào)來(lái)寫(xiě)值,并用反斜線("")放在小括號(hào)之前。例如:letapples=3letoranges=5//bygasheroletappleSummary="Ihave(apples)apples."letfruitSummary="Ihave(apples+oranges)piecesoffruit."Note練習(xí)使用?(