1.基礎(chǔ)部分

知識(shí)點(diǎn)1: let 代表變量(可以修改值),var代表常量(一但賦初始值之后不能被修改)。

比如最大登錄數(shù)需要用let?maximumNumberOfLoginAttempts = 10 來(lái)表示,

已經(jīng)登錄的次數(shù)需要用var?currentLoginAttempt = 0 來(lái)表示


知識(shí)點(diǎn)2:類(lèi)型注解

var?welcomeMessage:String。其中冒號(hào)的含義就是 是...類(lèi)型即?welcomeMessage是字符串類(lèi)型

可以同時(shí)定義多個(gè)變量的類(lèi)型,用逗號(hào)隔開(kāi),表示這幾個(gè)都是同一類(lèi)型的

?var age,count:Int 表示定義age和count 都是Int類(lèi)型的


知識(shí)點(diǎn)3:字符串插值

意思就是swift可以使用該方式將變量或者是常量插入到長(zhǎng)字符串中,使用方式為:\(常量/變量)

print("The current value of friendlyWelcome is \(friendlyWelcome) ")

// 輸出“The current value of friendlyWelcome is Bonjour!”??


知識(shí)點(diǎn)4:類(lèi)型安全和類(lèi)型推斷

類(lèi)型安全 可以理解為:如果你的代碼需要的是一個(gè)String,你就不可能會(huì)傳一個(gè)Int進(jìn)去,因?yàn)闀?huì)報(bào)錯(cuò)提示類(lèi)型不匹配。

類(lèi)型推斷 可以理解為:如果你沒(méi)有進(jìn)行類(lèi)型注解,他會(huì)根據(jù)你賦的值自動(dòng)推斷出該類(lèi)型是什么樣的類(lèi)型


知識(shí)點(diǎn)5:if

在判斷條件時(shí),if后邊的語(yǔ)句必須要是bool值?

let? ?i =1? ? ? ? ? ? ? ? ? ?

if? ?i? ?{

// 這個(gè)例子不會(huì)通過(guò)編譯,會(huì)報(bào)錯(cuò)

}

然而,下面的例子是合法的:

let? i =1

if? i ==1

{

// 這個(gè)例子會(huì)編譯成功

}


知識(shí)點(diǎn)6:元組

元組(tuples)把多個(gè)值組合成一個(gè)復(fù)合值。元組內(nèi)的值可以是任意類(lèi)型,并不要求是相同類(lèi)型

let? ?http404Error = (404,"Not Found")

你可以通過(guò)下標(biāo)訪問(wèn)元組的值,可以使用http404Error.0? 獲取到404 ,http404Error.1 獲取到Not Found

所以元組作為函數(shù)的返回值,就非常有用,比一個(gè)返回值能包含更多的信息



知識(shí)點(diǎn)6:可選類(lèi)型

C 和 Objective-C 中并沒(méi)有可選類(lèi)型這個(gè)概念

可選類(lèi)型表示有2種可能:

1. 有值,可以解析該值并訪問(wèn)該值

2.沒(méi)有值,是nil

定義一個(gè)可選類(lèi)型,如果未設(shè)置默認(rèn)值,則默認(rèn)值是nil

var serverResponseCode :Int?? = 404// serverResponseCode 包含一個(gè)可選的 Int 值404

serverResponseCode = nil? // serverResponseCode 現(xiàn)在不包含值

注意:nil 可以賦值給可選類(lèi)型,但是nil不能賦值給非可選類(lèi)型的變量或者是常量

nil不能賦值給非可選類(lèi)型的變量或者是常量

注意:

在oc中nil?是一個(gè)指向不存在對(duì)象的指針

在swift中nil不是一個(gè)指針,它是一個(gè)確定的值,用來(lái)表示值缺失?。。?/p>


知識(shí)點(diǎn)7:與可選值搭配的if語(yǔ)句 和強(qiáng)制解析,還有可選綁定if / guard

使用可選值的三種方式:if語(yǔ)句 和強(qiáng)制解析,還有可選綁定

1.? 使用 if? 判斷不為nil 才進(jìn)行使用(代碼量大,不推薦使用)

if convertedNumber !=nil

{? ?print("convertedNumber has an integer value of\(convertedNumber!)." )? ?}

2.? 如果能確定對(duì)象肯定不為空,可以使用!進(jìn)行強(qiáng)行解包(不建議使用)

3.使用 if 可選綁定,如果有值,才使用(推薦使用)

if? ?let? constantName = someOptional?

{? statements? ?}

使用可選綁定的時(shí)候,還可以多個(gè)bool條件在一個(gè)if中,使用逗號(hào)隔開(kāi)就可以了

if? let? ?firstNumber =Int("4")? ,? ?let? ?secondNumber = Int("42") ,? firstNumber < secondNumber && secondNumber <100

{ print("\(firstNumber)<\(secondNumber)< 100")? ?}

4.使用guard 語(yǔ)句來(lái)進(jìn)行

像?if?語(yǔ)句一樣,guard?的執(zhí)行取決于一個(gè)表達(dá)式的布爾值。我們可以使用?guard?語(yǔ)句來(lái)要求條件必須為真時(shí),以執(zhí)行?guard?語(yǔ)句后的代碼。不同于?if?語(yǔ)句,一個(gè)?guard?語(yǔ)句總是有一個(gè)?else?從句,如果條件不為真則執(zhí)行?else?從句中的代碼

guard? let? location = person["location"]? else? {//條件為false 的時(shí)候執(zhí)行else的代碼

print("I hope the weather is nice near you.")? ? ?return? }? //到這里才是guard語(yǔ)句的結(jié)束

print("I hope the weather is nice in\(location).") //條件為true 的時(shí)候執(zhí)行g(shù)uard之后的的代碼


知識(shí)點(diǎn)8:錯(cuò)誤處理、斷言和先決條件 ?(待更新)

最后編輯于
?著作權(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)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

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