第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

我可以在Swift中的if語(yǔ)句中使用范圍運(yùn)算符嗎?

我可以在Swift中的if語(yǔ)句中使用范圍運(yùn)算符嗎?

莫回?zé)o 2019-12-13 09:46:11
是否可以使用范圍運(yùn)算符...和..<if語(yǔ)句。可能是這樣的:let statusCode = 204if statusCode in 200 ..< 299 {  NSLog("Success")}
查看完整描述

3 回答

?
隔江千里

TA貢獻(xiàn)1906條經(jīng)驗(yàn) 獲得超10個(gè)贊

您可以使用“模式匹配”運(yùn)算符~=:


if 200 ... 299 ~= statusCode {

    print("success")

}

或帶有表達(dá)式模式的切換語(yǔ)句(內(nèi)部使用模式匹配運(yùn)算符):


switch statusCode {

case 200 ... 299:

    print("success")

default:

    print("failure")

}

請(qǐng)注意,它..<表示忽略上限值的范圍,因此您可能需要 200 ... 299或200 ..< 300。


附加信息:在優(yōu)化打開(kāi)的情況下,在Xcode 6.3中編譯以上代碼時(shí),進(jìn)行測(cè)試


if 200 ... 299 ~= statusCode

實(shí)際上根本不產(chǎn)生任何函數(shù)調(diào)用,只有三個(gè)匯編指令:


addq    $-200, %rdi

cmpq    $99, %rdi

ja  LBB0_1

這是與生成的完全相同的匯編代碼


if statusCode >= 200 && statusCode <= 299

您可以使用


xcrun -sdk macosx swiftc -O -emit-assembly main.swift

從Swift 2開(kāi)始,這可以寫(xiě)成


if case 200 ... 299 = statusCode {

    print("success")

}

對(duì)if語(yǔ)句使用新引入的模式匹配。


查看完整回答
反對(duì) 回復(fù) 2019-12-13
?
侃侃無(wú)極

TA貢獻(xiàn)2051條經(jīng)驗(yàn) 獲得超10個(gè)贊

這個(gè)版本似乎比模式匹配更具可讀性:


if (200 ... 299).contains(statusCode) {

    print("Success")

}


查看完整回答
反對(duì) 回復(fù) 2019-12-13
?
有只小跳蛙

TA貢獻(xiàn)1824條經(jīng)驗(yàn) 獲得超8個(gè)贊

這是一個(gè)舊線程,但在我看來(lái),我們對(duì)此考慮過(guò)度。在我看來(lái),最好的答案就是


if statusCode >= 200 && statusCode <= 299

沒(méi)有啦


if 200 > statusCode > 299

我知道的其他形式,以及其他建議的解決方案都在進(jìn)行函數(shù)調(diào)用,這將變得更慢且更難以閱讀。模式匹配方法是一個(gè)有用的技巧,但似乎不適合解決此問(wèn)題


查看完整回答
反對(duì) 回復(fù) 2019-12-13
  • 3 回答
  • 0 關(guān)注
  • 598 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢(xún)優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)