3.3 關(guān)鍵字: where 條件約束

where 條件約束

    var eHttpCode:(Int, String) = (404, "Not Found")
    switch eHttpCode
    {
        /// where 約束 eCode在 [200, 300) 時(shí):
        case let (eCode, _) where eCode >= 200 && eCode < 300:
            print("---當(dāng)eCode在[200, 300)才 輸出 --")
        default:
            print("Bad request.")
    }
    let eArrInt = [24, 32, 30, 36, 28, 33]
    
    /// where 約束 eArrInt 中的元素 >= 31 時(shí)才遍歷輸出:
    for eI in eArrInt where eI >= 31
    {
       print("---where 約束 eArrInt 中的元素 >= 31 時(shí)才遍歷輸出: \(eI)--") //32,36,33
    }
    // where 約束 泛型 T類型 必須遵循 Decodable協(xié)議:
    func getDecodableResult<T>(eT : T) where T : Decodable
    {
        print(eT)
    }

enum HTTPError : Error
{
    case code(Int)
}


        do
        {
            try requestWithError()
        }
        catch HTTPError.code(let code) where code == 408
        {
            print("Request time out.")
        }
        
        
        func requestWithError() throws
        {
            throw HTTPError.code(400)
        }
    1. where 和 associatedtype 搭配使用:
// where 和 associatedtype 搭配使用:
protocol EProtocolA
{
    associatedtype eA : IteratorProtocol
    associatedtype eB : Sequence where eB.Iterator.Element == eA.Element
    // eB遵循Sequence協(xié)議, 且 where 約束 eB中的元素須和eA的元素類型一樣;
}
// where 約束 對(duì)遵循EProtocolA協(xié)議的同時(shí),且遵循Equatable協(xié)議 的類型進(jìn)行擴(kuò)展:
extension EProtocolA where Self : Equatable
{
    func yeTest()
    {
        print("---where 約束 對(duì)遵循EProtocolA協(xié)議的同時(shí),且遵循Equatable協(xié)議 的類型進(jìn)行擴(kuò)展:--")
    }
}
截屏2023-01-24 22.50.41.png
截屏2023-01-24 22.50.57.png
截屏2023-01-24 22.51.12.png
截屏2023-01-24 22.51.14.png
截屏2023-01-24 22.51.27.png
截屏2023-01-24 22.51.41.png
截屏2023-01-24 22.51.47.png
截屏2023-01-24 22.51.57.png
截屏2023-01-24 22.52.05.png
截屏2023-01-24 22.52.13.png
?著作權(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)容

  • 有句話之前我提過(guò),今天還想再說(shuō)一次。那就是打鐵還需自身硬。對(duì)于自身能力的嚴(yán)格要求,可以幫助實(shí)現(xiàn)我們所有夢(mèng)寐以求的東...
    蘋果上的小豌豆閱讀 2,261評(píng)論 0 7
  • 作者:Jordan Morgan,原文鏈接,原文日期:2017-02-11 譯者:鄭一一;校對(duì):numbbbbb,...
    iOS亮子閱讀 691評(píng)論 0 1
  • Swift關(guān)鍵字匯總?cè)缦拢?一: 常見使用頻繁的關(guān)鍵字: 1,訪問修飾符:在swift中,訪問修飾符有五種,分別是...
    物非0人非閱讀 3,715評(píng)論 2 15
  • exists用法 exists:如果括號(hào)內(nèi)子查詢語(yǔ)句返回結(jié)果不為空,說(shuō)明where條件成立,就會(huì)執(zhí)行主SQL語(yǔ)句如...
    攻城獅Chova閱讀 761評(píng)論 0 0
  • Swift官方文檔的詞匯結(jié)構(gòu)中, 有非常多的關(guān)鍵字, 它們被用于聲明中、語(yǔ)句中、表達(dá)式中、類中、模式中, 還有以數(shù)...
    小宇宙_fly閱讀 870評(píng)論 0 3

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