Swift 可選類型

Swift.png

1.可選類型的簡單介紹

  • 可選類型:一個變量录语,可能有值蝇庭,也可能沒有值
  • 可選類型也是一種數(shù)據(jù)類型(像 Int,Float)
  • 只有可選類型才能賦值為nil
  • 在Swift中揪漩,nil表示沒有值畜眨,一個特殊含義的字符
  • 非可選類型鸣驱,代表無論在什么時候泛鸟,在哪里都是有值的
  • 在OC開發(fā)中,如果一個變量暫停不使用,可以賦值為0(基本屬性類型)或者賦值為空(對象類型)

2.可選類型定義和使用

2.1聲明

  • 定義聲明,在需要聲明的變量后面添加?
  • 方式二 var num: Optional<Int> = xxx
// 定義的第一種方式
var num:Optional<Int> = 2;
print(num);
//  打印結(jié)果:"Optional(2)\n"

//定義的第2種方式
var num2:Int? = 3;
2.2可選類型的使用
  • 在使用的時候需要解析 ! 為強(qiáng)制解析
  • 可選綁定 解析
  • guard守護(hù) 解析
var num2:Int? = 3;
//錯誤的寫法,可選類型 不可以直接操作
// num2 += 4;

//1.必須解包  !:表示強(qiáng)制解包
num2 ! + = 4

//上面的寫法 還是有問題的 因?yàn)?可選類型 可以nil

if num2 != nil {
    num2! += 4;
}

// 2.可選綁定 

if var  result = num2 {
    print(result);
}
//打印結(jié)果:4

//可選綁定的原理: 首先判斷num2是否為nil,如果是踊东,那么if的條件是false,跳過 {}北滥,如果不是nil勺美,if的條件為true,會把num2強(qiáng)制解包,賦值給result


//3.函數(shù)使用
func test(score: Int?) -> Void{
    
    if var s = score {
        print(s);
        s += 4;
        print(s);
    }
    
}
test(score: 3);


// 使用 guard  復(fù)習(xí)一下
/*
1. guard必須使用在函數(shù)里面
2. guard語句必須帶有else語句
2.1 當(dāng)條件表達(dá)式為true的時候跳過else語句中的內(nèi)容碑韵,執(zhí)行語句組內(nèi)容
2.2 條件表達(dá)式為false的時候執(zhí)行else語句中的內(nèi)容赡茸,跳轉(zhuǎn)語句一般是return、break祝闻、continue和throw
*/
func test1(score: Int?) -> Void{
    
   
    guard var s = score else {
        
        print("為nil")
        return;
    }
    
    s+=1;
    print(s);
    
}


test1(score: 3);

 /* These methods expect their string arguments to contain any percent escape codes that are necessary. It is an error for URLString to be nil.
 */
 public convenience init?(string URLString: String)

//從上面的解釋中可以理解到 這個方法有可能會返回 nil
let url = NSURL(string:"www.baidu.com");

//正確的方式  ---使用可選類型
let url : NSURL? = NSURL(string: "www.baidu.com")
//判斷不為nil時
if let tempUrl = url {
    let request = NSURLRequest(URL: tempUrl)
}

總結(jié): 可選類型 解析的方式有4種

  • 直接判斷 + 強(qiáng)制解包
  • 可選綁定
  • guard守護(hù)
  • 空合運(yùn)算 ?? (三目運(yùn)算的原理一樣)
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末占卧,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子联喘,更是在濱河造成了極大的恐慌华蜒,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,657評論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件豁遭,死亡現(xiàn)場離奇詭異叭喜,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)蓖谢,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,889評論 3 394
  • 文/潘曉璐 我一進(jìn)店門捂蕴,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人闪幽,你說我怎么就攤上這事啥辨。” “怎么了盯腌?”我有些...
    開封第一講書人閱讀 164,057評論 0 354
  • 文/不壞的土叔 我叫張陵溉知,是天一觀的道長。 經(jīng)常有香客問我腕够,道長级乍,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,509評論 1 293
  • 正文 為了忘掉前任帚湘,我火速辦了婚禮玫荣,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘客们。我一直安慰自己崇决,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,562評論 6 392
  • 文/花漫 我一把揭開白布底挫。 她就那樣靜靜地躺著,像睡著了一般脸侥。 火紅的嫁衣襯著肌膚如雪建邓。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,443評論 1 302
  • 那天睁枕,我揣著相機(jī)與錄音官边,去河邊找鬼沸手。 笑死,一個胖子當(dāng)著我的面吹牛注簿,可吹牛的內(nèi)容都是我干的契吉。 我是一名探鬼主播,決...
    沈念sama閱讀 40,251評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼诡渴,長吁一口氣:“原來是場噩夢啊……” “哼捐晶!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起妄辩,我...
    開封第一講書人閱讀 39,129評論 0 276
  • 序言:老撾萬榮一對情侶失蹤惑灵,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后眼耀,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體英支,經(jīng)...
    沈念sama閱讀 45,561評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,779評論 3 335
  • 正文 我和宋清朗相戀三年哮伟,在試婚紗的時候發(fā)現(xiàn)自己被綠了干花。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,902評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡楞黄,死狀恐怖把敢,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情谅辣,我是刑警寧澤修赞,帶...
    沈念sama閱讀 35,621評論 5 345
  • 正文 年R本政府宣布,位于F島的核電站桑阶,受9級特大地震影響柏副,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜蚣录,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,220評論 3 328
  • 文/蒙蒙 一割择、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧萎河,春花似錦荔泳、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,838評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至擎椰,卻和暖如春支子,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背达舒。 一陣腳步聲響...
    開封第一講書人閱讀 32,971評論 1 269
  • 我被黑心中介騙來泰國打工值朋, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留叹侄,地道東北人。 一個月前我還...
    沈念sama閱讀 48,025評論 2 370
  • 正文 我出身青樓昨登,卻偏偏與公主長得像趾代,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子丰辣,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,843評論 2 354

推薦閱讀更多精彩內(nèi)容

  • 在值可能不存在的情況下撒强,您可以使用可選值。 可選表示兩種可能性:有一個值糯俗,您可以解開可選值以訪問該值尿褪,或者根本沒有...
    Joker_King閱讀 400評論 0 0
  • 可選類型 在Swift中,可選類型其根源是一個枚舉型,里面有None和Some兩種類型.其實(shí)所謂的nil就...
    Amok校長閱讀 273評論 0 0
  • 一、可選類型的概念 定義:一個變量得湘,可以有值杖玲,也可以沒有值; 可選類型也是一種類型淘正; 如果是可選類型摆马,可以賦值為 ...
    magic_pill閱讀 204評論 0 1
  • 看到一條微博,大意是在講單身的女人單身久了就會變成自己最想愛上的那個男人鸿吆。其實(shí)這句話和非著名商業(yè)人士說過的一句話有...
    何時再出發(fā)閱讀 223評論 2 0
  • 天寒地凍冷風(fēng)兮囤采, 月朗星稀趕路急。 勤學(xué)苦練鴻鵠展惩淳, 東升旭日爭朝夕蕉毯。
    AK紫凝閱讀 241評論 1 1