swift基礎知識二

2021-09-20 00:22:07 字數 1623 閱讀 9496

語句以及強制解析

//可以使用if語句和nil比較來判斷乙個可選值是否包含值,可以使用「==」,'!= ' 來執行比較

//如果可選型別有值,它將不等於nil

var num:int? = 3

if num != nil

//感嘆號 !

//當你判斷乙個可選型別確實包含值之後,你可以在可選的名字後面加上感嘆號(!)來獲取值,這個感嘆號表示「我知道這個可選型別有值,請使用它」。這個被稱為可選值的強制解析。

//注意:使用!來獲取乙個不存在的可選值會導致執行時錯誤。使用!來強制解析值之前,一定要確定可選包含乙個非nil的值。

//2.可選繫結

//使用可選繫結來判斷可選型別是否包含值,如果包含,就把值賦值給乙個臨時常量或者變數。可選繫結可以用在if和while語句中,這條語句不僅可以用來判斷可選型別是否有值,同時把可選型別的值賦給常量或者變數。

let empty:string? = nil

if let constname = num

if let em = empty else

if let firstnumber = int("4"), let secondnumber = int("42"), firstnumber < secondnumber && secondnumber < 100

// 輸出 "4 < 42 < 100"

if let firstnumber = int("4")

}}// 輸出 "4 < 42 < 100"

//注意:在if條件語句中使用常量和變數來建立乙個可選繫結,僅在if語句的句中(body)中才可以獲取可選繫結的值。

//相反,在guard語句中使用常量和變數來建立乙個可選繫結,僅在guard語句外且在語句後才能獲取到值。

//3.隱式解析可選型別

/*如上所述,可選型別暗示了常量或者變數可以「沒有值」。可選可以通過 if 語句來判斷是否有值,如果有值的話可以通過可選繫結來解析值。

有時候在程式架構中,第一次被賦值之後,可以確定乙個可選型別總會有值。在這種情況下,每次都要判斷和解析可選值是非常低效的,因為可以確定它總會有值。

當可選型別被第一次賦值之後就可以確定之後一直有值的時候,隱式解析可選型別非常有用。隱式解析可選型別主要被用在 swift 中類的構造過程中

*/

let possiblestring :string? = "an optional string"

let forcedstring :string = possiblestring! //需要感嘆號來獲取值,沒有感嘆號會報錯

let assumestring :string! = "乙個隱式解析可選值"

let implicitstring :string = assumestring //不需要感嘆號

//你可以把隱式解析可選型別當做乙個可以自動解析的可選型別。你要做的只是宣告的時候把感嘆號放到型別的結尾,而不是每次取值的可選名字的結尾。

//注意:

//如果你在隱式解析可選型別沒有值的時候嘗試取值,會觸發執行時錯誤。和你在沒有值的普通可選型別後面加乙個驚嘆號一樣。

//4.錯誤處理

//可以使用 錯誤處理來應對程式執行中可能遇到的錯誤條件。

swift 基礎知識

swift 中可以不寫分號 用print列印 let 是不可變的 var 表示可變的 var a int 10 var c float 10.13 在swift 中相加的必須是同型別 print a c 會報錯 在swift 中 可以用特殊符號定義變數 var 老王 18 在swift 中 字串可以...

Swift3 0 基礎知識

本文對swift做乙個從oc的角度的基礎知識簡單概要。swift oc說明 let var const 在oc中不用const宣告的常量,都認為是變數 float double cgfloat intnsinteger string nsstring bool bool oc中的非1為flase,1...

基礎知識 二

1,較大陣列應該在main函式外宣告,否則可能因為 他作為臨時變數在堆疊段中佔據的空間過大,棧溢位 2,string.h memcpy b,a,sizeof int k a b 複製k個元素 memcpy b,a,sizeof a a b memset a,0,sizeof a 將陣列全部填充為零 ...