手机Av在线不卡,日韩精品校园婷婷五月天,国产轮理电影一区二区,日韩三级欧美视频

北京藍(lán)鷗ios電腦培訓(xùn)學(xué)校

[手機開發(fā)]
獵學(xué)網(wǎng)訂閱號
獵學(xué)網(wǎng)官方企業(yè)微信
位置: 獵學(xué)網(wǎng) > 學(xué)校機構(gòu) > 北京藍(lán)鷗ios電腦培訓(xùn)學(xué)校 > 學(xué)習(xí)資訊> 藍(lán)鷗Swift干貨分享

藍(lán)鷗Swift干貨分享

74 2017-04-14

Swift以其新面目閃亮登場,北京iOS培訓(xùn),藍(lán)鷗3G學(xué)院和您一起解析蘋果新語言:

Swift是一門集C語言、Objective-C語言優(yōu)勢于一身的全新編程語言,是由蘋果開發(fā)的專門針對iOS以及OSX平臺的程序設(shè)計語言,并且完全兼容C語言。Swift采用更安全的編程模式,并且添加了一些流行的特性,這讓編程變得更加簡單,更加靈活,更有樂趣。Swift以其全新的面貌展示給眾人,借助于成熟的、非常受歡迎的Cocoa以及CocoaTouch框架為重新定義軟件開發(fā)方式創(chuàng)造了有利條件。

Swift已經(jīng)醞釀多年,蘋果通過改進(jìn)現(xiàn)有的編譯器、調(diào)試器、以及基礎(chǔ)框架為Swift建立了堅實的基矗我們通過自動引用計數(shù)技術(shù)(ARC)進(jìn)一步簡化了內(nèi)存管理的方式。建立在Foundation框架以及Cocoa框架等堅實的基礎(chǔ)上的框架,Swift已經(jīng)具備現(xiàn)代化和標(biāo)準(zhǔn)化的特征。Objective-C已經(jīng)演化到支持塊語句(block)、集合字面量、模塊以及通過使用框架來與現(xiàn)代化語言技術(shù)實現(xiàn)無縫對接。感謝這些基礎(chǔ)工作,我們現(xiàn)在可以正式介紹蘋果未來軟件開發(fā)的全新語言-Swift。

Swift對于使用Objective-C作為開發(fā)語言的開發(fā)人員來說可謂似曾相識,十分親切。因為它采用Objective-C見名知意的參數(shù)命名規(guī)則以及強大的Objective-C動態(tài)對象模型。它可以與現(xiàn)有的Cocoa框架無縫對接,并且可以與Objective-C實現(xiàn)代碼混編。建立在這些共同點上,Swift還引入了許多新特性、代碼混編并且是完全面向?qū)ο蟮恼Z言。

Swift對于開發(fā)者來說是友好的。它是第一款像腳本語言一樣靈活、有趣的企業(yè)級系統(tǒng)編程語言。它支持playgrounds模式,一個無需通過編譯和運行程序就能允許開發(fā)者一邊寫Swift代碼一邊立即查看代碼的執(zhí)行結(jié)果的創(chuàng)造性嘗試。

Swift結(jié)合了現(xiàn)代開發(fā)語言的各種優(yōu)勢,這源自于蘋果的優(yōu)良的開發(fā)文化。其編譯器為性能而生,而其語言為開發(fā)而生,缺一不可。這一切使得Swift成為開發(fā)者乃至蘋果最有價值的投資。

編寫iOS和OSX應(yīng)用,Swift是一個非常棒的方式,未來會持續(xù)引入新特性和新功能。對于Swift,我們擁有雄心壯志,真是迫不及待的想要看到您如何用它來創(chuàng)造奇跡。

Swift概覽

依照傳統(tǒng),第一次使用新的語言做開發(fā),應(yīng)當(dāng)在屏幕上打印出來“Hello,world”。用Swift,只需要簡單的寫下如下語句:

println("Hello,world")

如果你已經(jīng)寫過C語言或者Objective-C代碼,Swift這種語法規(guī)則你一定會覺得很面熟,并且這已經(jīng)是一個完整的程序了。你無需引入單獨的類庫來完成輸入/輸入或者字符串操作功能。代碼書寫在一個程序的全局入口,所以你不再需要main函數(shù)。最最重要的是你也不必在每行語句結(jié)束時寫上惱人的分號。

本章節(jié)將提供足夠的信息幫助你如何使用Swift語言完成多種不同的編程工作。還不理解?不必?fù)?dān)心,概覽中提到的知識點將在本書隨后的內(nèi)容中會詳細(xì)講解。

注:

為了得到更好的體驗,請在XCode中創(chuàng)建playground項目,Playgrounds可以編寫Swift代碼,同時立即查看代碼的執(zhí)行結(jié)果

簡單值

使用let關(guān)鍵字聲明常量,使用var關(guān)鍵字聲明變量。雖然編譯時不必知道常量的值,但是至少得為聲明的常量賦值一次。這意味著聲明一個常量,可以多次使用該常量對應(yīng)的值。

varmyVariable=42

myVariable=50

letmyConstant=42

常量或者變量應(yīng)當(dāng)與你所賦的值類型相同。通常,不用書寫確切的類型。只需要為一個常量或者變量賦值,讓編譯器去推斷它們的類型吧。在上述的例子中,編譯器會推斷出myVariable變量是一個整型integer因為其初值就是整型的。

如果初值沒有足夠的信息用于推斷其類型(或者根本沒有初值)可以通過在常量或者變量名后添加冒號和類型名來指定其類型。

letimplicitInteger=70

letimplicitDouble=70.0

letexplicitDouble:Double=70

實驗:

聲明一個常量賦初值為4,并且指明其類型為Float型

在Swift中不能隱式轉(zhuǎn)換一個值的類型,如果需要將某個值轉(zhuǎn)換成不同類型,需要創(chuàng)建代轉(zhuǎn)類型的實例。

letlabel="Thewidthis"

letwidth=94

letwidthLabel=label+String(width)

實驗:

嘗試移除最后一行字符串轉(zhuǎn)換函數(shù),看到了什么錯誤?

其實有更簡單的方式將一些基本數(shù)據(jù)包含到字符串中,那就是將數(shù)據(jù)寫在小括號中,然后在小括號前加一個反斜杠就可以了。例如:

letapples=3

letoranges=5

letappleSummary="Ihave\(apples)apples."

letfruitSummary="Ihave\(apples+oranges)piecesoffruit."

實驗:

使用\()將一個浮點型數(shù)值加入到一個包含某人姓名的字符串中

用中括號([])來聲明數(shù)組和字典,然后通過在[]中寫上數(shù)組的下標(biāo)或者字典中的鍵來訪問數(shù)據(jù)元素。

varshoppingList=["catfish","water","tulips","bluepaint"]

shoppingList[1]="bottleofwater"

varoccupations=[

"Malcolm":"Captain",

"Kaylee":"Mechanic",

]

occupations["Jayne"]="PublicRelations"

如果要創(chuàng)建空的數(shù)組或者字典,可以使用初始化語法。

letemptyArray=String[]()

letemptyDictionary=Dictionary()

如果類型可以被編譯器推斷出來,那么你可以直接用[]創(chuàng)建空數(shù)組,[:]來創(chuàng)建字典—例如,當(dāng)你為一個變量賦一個新值,或者為一個函數(shù)傳參數(shù)是,你可以這樣做:

shoppingList=[]//Wentshoppingandboughteverything.

控制流程

使用if和switch做條件判斷,使用for-in,for,while和do-while來執(zhí)行循環(huán)。值得注意的是,判斷條件或者循環(huán)變量旁的小括號不是必寫的。但是大括號依然要寫。

letindividualScores=[75,43,103,87,12]

varteamScore=0

forscoreinindividualScores{

ifscore>50{

teamScore+=3

}else{

teamScore+=1

}

}

teamScore

在if語句中,判斷條件必須是布爾表達(dá)式(Boolean)—這樣的話,ifscore{…}這句就是有錯誤的,因為score并不是隱式的跟0做比較。

在當(dāng)某些值可能為空的時候,你可以同時使用if和let,這樣這些值就表示為可選的。一個可選的值既可以包含某個確定的值也可以為nil,nil表示一個空值。當(dāng)然在類型后加一個問號(?)就可以將該值標(biāo)記為可選的。

varoptionalString:String?="Hello"

optionalString==nil

varoptionalName:String?="JohnAppleseed"

vargreeting="Hello!"

ifletname=optionalName{

greeting="Hello,\(name)"

}

實驗:

將optionalName賦值為nil,greeting的結(jié)果會是什么呢?當(dāng)optionalName為nil是添加一個else語句來設(shè)置一個不同的greeting

如果可選值為nil,那么if語句的判斷條件就是false,大括號中的代碼也會被跳過。否則,可選值就會執(zhí)行相關(guān)的代碼塊并把結(jié)果賦值給let后面對應(yīng)的常量,這樣大括號所表示的代碼塊的值就會可用。

不同于C語言或者Objective-C,switch語句在Swift語言中支持任意數(shù)據(jù)類型和各種各樣的比較操作—并局限于整型和等式比較。

letvegetable="redpepper"

switchvegetable{

case"celery":

letvegetableComment="Addsomeraisinsandmakeantsonalog."

case"cucumber","watercress":

letvegetableComment="Thatwouldmakeagoodteasandwich."

caseletxwherex.hasSuffix("pepper"):

letvegetableComment="Isitaspicy\(x)?"

default:

letvegetableComment="Everythingtastesgoodinsoup."

}

實驗:

嘗試移除defaultcase,你看到了什么錯誤?

當(dāng)符合條件的case被執(zhí)行后,程序?qū)鰏witch語句。程序并不會順序執(zhí)行接下來的case,所以在switch語句中就沒有必要顯式的通過在每個case對應(yīng)的代碼片段結(jié)尾使用關(guān)鍵字break來跳出該語句。

同時,你可以通過兩個變量來表示字典的每一個鍵值對再配合使用for-in來快速遍歷字典。

letinterestingNumbers=[

"Prime":[2,3,5,7,11,13],

"Fibonacci":[1,1,2,3,5,8],

"Square":[1,4,9,16,25],

]

varlargest=0

for(kind,numbers)ininterestingNumbers{

fornumberinnumbers{

ifnumber>largest{

largest=number

}

largest

實驗:

通過添加一個新的變量來記錄遍歷得到的數(shù)中的最大數(shù)

while語句依然繼承自C語言,除非條件發(fā)生改變,否則會循環(huán)執(zhí)行某段代碼。同時循環(huán)的條件也可以寫在最后面,這樣可以確保循環(huán)至少會被執(zhí)行一次—do-while。

varn=2

whilen<100{

n=n*2

}

n

varm=2

do{

m=m*2

whilem<100

m

在for循環(huán)中,你可以使用..來描述循環(huán)變量的取值范圍,或者依然使用C語言中聲明變量,條件和自增運算的方式,這兩者是等價的。

varfirstForLoop=0

foriin0..3{

firstForLoop+=i

}

firstForLoop

varsecondForLoop=0

forvari=0;i<3;++i{

secondForLoop+=1

}

secondForLoop

如果是使用..的話,取值范圍不包括上限(類似于i<5),若要包括則需要使用…(i<=5).

全部內(nèi)容請關(guān)注藍(lán)鷗iOS培訓(xùn):lanou3g/lo_news/

溫馨提示: 專業(yè)老師1對1為您解答    馬上填寫,¥1000 元豪禮免費領(lǐng)!

掃一掃
獲取更多福利

×
獵學(xué)網(wǎng)
最新在线观看国产欧美日韩| 老鸭窝新AV| 五十路熟女未删减| 人妻大屁股一区| 非洲亚成人网站在线观看| 日日韩欧美精品一区二区| 青青操亚洲中文字幕| 欧美日韩午夜精品久久久| 国产国产精品无码一区二区三区| 精品日产一区二区| 亚洲日韩婷婷| 婷婷激情成人| 淫乱对白久久teen| 内射 人妻 少妇| 北条麻妃作品一区| 日美一区二区| 日韩欧美人妻精品中文在线| 日韩专区欧美精品老汉| 精品人妻久久久中文字幕专区| 少妇久久久久久高朝不断| 无码一区在线资源| 亚洲成人福利综合在线| 亚洲金品三级| 久久久久久久久夜夜夜夜夜夜夜| 尤物凹凸不卡一区| 色哟视频| 92深夜福利视频| 国产AV无码DVD| 久久精品国产99国产2019| 久久久aaa| 国产日本99视频精品免视看9| 日本人妻福利在线| 日本三级片在线观看一区二区三道 | 欧美日韩三二级| 日本女优一区二区蜜桃视频| 日本不二不卡| 高清木马1区2区3区| 全国黄色片久久| 日本不卡无人妻系列一区二区三区| 月本久久久网站| 国青青操在线约操|