Swift基礎(chǔ)語法簡(jiǎn)介(一)——你的第一行Swift代碼

? 學(xué)習(xí)一門新的語言,首先應(yīng)該從該門語言的基礎(chǔ)語法入手,掌握基本語法的使用規(guī)則,先保證能寫簡(jiǎn)單的邏輯,能閱讀簡(jiǎn)單的代碼。之后,通過完成幾個(gè)簡(jiǎn)單的需求,實(shí)際寫代碼感受并強(qiáng)化一下相關(guān)語法。并且,在具體寫代碼的過程中強(qiáng)化語法的一些細(xì)節(jié)以及相關(guān)的原理性的知識(shí)。本系列文章會(huì)盡量避免事無巨細(xì)的介紹各種語法或知識(shí),而是以讓大家更快地上手Swift為目標(biāo)。至于其中用的比較少的細(xì)節(jié),會(huì)放在最后介紹或者不介紹。我相信如果對(duì)Swift整體有了認(rèn)識(shí),具體的用的比較少的細(xì)節(jié),等真用到了也能找到足夠多的相關(guān)資料。

? Swift是一門類型安全的語言。Swift幫助你明確代碼可以操作的類型。如果你的變量預(yù)期得到一個(gè)String,類型會(huì)安全地組織以免你不小心傳入Int。在開發(fā)過程中,這個(gè)限制能幫助你在開發(fā)過程中更早地發(fā)現(xiàn)并修復(fù)錯(cuò)誤。當(dāng)然,Swift的安全特性不止體現(xiàn)于此。

1、聲明常量和變量

? 常量顧名思義一旦設(shè)置好值便不能再被更改。變量可以在任何時(shí)候被設(shè)置為不同的值。

? 使用關(guān)鍵字let來聲明常量,使用關(guān)鍵字var來聲明變量。(ps:是不是看到了js或python的影子)

? ?let maxNumber = 10

??var currentNumber = 0

這段代碼讀作:聲明一個(gè)叫做maxNumber的常量,并賦值為10,聲明一個(gè)叫做currentNumber的變量,并設(shè)置初始值0。

ps: Swift 并不要求在每一句代碼結(jié)尾寫分號(hào)

2、類型標(biāo)注

? 你可以通過添加類型標(biāo)注為每個(gè)變量或常量標(biāo)明能夠儲(chǔ)存值的類型。添加類型標(biāo)注的方法是在變量或者常量的名字后加一個(gè)冒號(hào),再跟一個(gè)空格,最后加上要使用的類型的名稱。

? 例如:

? var welcomeMessage: String

? 聲明一個(gè)叫做welcomeMessage的變量,它的類型是String。

? var red, green, blue: Double

? 聲明red, green, blue三個(gè)變量,三個(gè)變量的類型均為Double。

? 常量或者變量必須擁有和你賦給它們的值相同的類型。不過,你并不需要總是顯示地寫出類型。在聲明一個(gè)常量或者變量的時(shí)候直接給它們賦值就可以讓編譯器推斷它們的類型。比如varmyVariable =42 編譯器就會(huì)推斷myVariable是一個(gè)整型,因?yàn)樗某跏贾凳且粋€(gè)整型。

3、輸出常量和變量

var welcomeMessage: String = "helloworld!"

print(welcomeMessage)

print("The current value ofwelcomeMessage is \(welcomeMessage)")

結(jié)果為:

hello world!

The current value of welcomeMessage ishello world!

Swift使用字符串插值的方式來把常量名或者變量名當(dāng)做占位符加入到更長(zhǎng)的字符串中,然后讓Swift用常量或變量的當(dāng)前值替換這些占位符。

let apples= 3

let appleSummary= "I

have \(apples)apples."

在聲明String變量時(shí)也可以采用同樣的方式

4、基本數(shù)據(jù)類型

? Swift為所有C和Objective-C的類型提供了自己的版本,包括整型值的Int,浮點(diǎn)數(shù)的Double和Float,布爾量值的Bool,字符串的String,數(shù)組Array,Set和字典Dictionary

?Swift版本的基本數(shù)據(jù)類型包括Int、UInt、Float、Double等

?let meaningOfLife = 42? 被推斷為Int

?let pi = 3.14159?? 被推斷為Double

5、String

var welcomeMessage: String = "hello world!"? //定義String

常用API

isEmpty????? 判斷String是否為空

count????? 返回String長(zhǎng)度

append????? 在String末尾添加字符

uppercased / lowercased????? 將String變?yōu)榇?小寫

hasPrefix /hasSuffix???? 是否有相應(yīng)的前/后綴

contains? 是否包含相應(yīng)的字符

OC中用 NSMutableString和NSString分別表示可變字符串和不可變字符串。Swift與此不同,在定義String時(shí),var代表可變,let代表不可變。(Array與Dictionary也是如此)

6、Array

? var shoppingList =["catfish","water","tulips","blue paint"]? //初始化Array

? shoppingList[1]= "bottleof water"? //修改Array中某一項(xiàng)的值

? var emptyArray =[String]()?? //初始化空Array

? letoddNumbers = [1, 3, 5, 7, 9, 11, 13, 15]? //An array of 'Int' elements

與OC不同,Array中的元素可以是基本數(shù)據(jù)類型(Dictionary也是如此)。

常用API

isEmpty????? 判斷數(shù)組是否為空

count????? 返回?cái)?shù)組長(zhǎng)度

first????? 返回首個(gè)元素(如果數(shù)組為空,返回nil)

last????? 返回最后一個(gè)元素(如果數(shù)組為空,返回nil)

append????? 在數(shù)組末尾添加一個(gè)元素

insert????? 在固定下標(biāo)位置插入某一元素

remove????? 移除某一元素

7、Dictionary

var occupations= [

????"Malcolm":"Captain",

????"Kaylee":"Mechanic",

]? // 初始化字典

occupations["Jayne"]= "PublicRelations"? // 修改字典中某項(xiàng)值

let emptyDictionary= [String:Float]()? // 初始化空字典

常用API

isEmpty????? 判斷字典是否為空

count????? 返回字典長(zhǎng)度

keys????? 返回字典所有的key

values????? 返回字典所有的value

最后編輯于
?著作權(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)容