swift where與匹配模式的例項詳解

2022-09-20 19:30:11 字數 926 閱讀 8531

swift where與匹配模式的例項詳解

前言:在眾多 swift 提供給 objective-c 程式設計師使用的新特性中,有個特性把自己偽裝成乙個無聊的老頭,但是卻在如何優雅的解決「鞭屍金字塔「的問題上有著巨大的潛力。很顯然我所說的這個特性就是 switch 語句, 對於很多 objective-c 程式設計師來說,除了用在 duff's device 上比較有趣之外,switch 語句非常笨拙,與多個 if 語句相比,它幾乎沒有任何優勢。

1、基本使用

swift中switch語句case後面可以用where對條件進行限制

let point = (3,3)

switch point

2、使用if - case - where語句替代switch語句的使用方法

let age = 19

switch age

if case 10...19 = age

if case 10...19 = age wh程式設計客棧ere age >= 18

注意:case條件必須放在」=」之前

swift 3.0以後if case 後面的」where」用」,」代替

3、if-case 與元組組合使用(元組解包使用)

let vector = (4,0)

if case ( let x , 0 ) = vector where x > 2 && x < 5

4、case - fajokszdvwhere 與迴圈組合使用

for i in 1...100

}fajokszdvfor case let i in 1...100 where i % 3 == 0

使用case限制條件可以大大減少**量,使用起來非常方便,是swift語言的一大特色,好好掌握可以寫出很優美的簡潔的**

本文標題: swift where與匹配模式的例項詳解

本文位址:

模式匹配與KMP演算法

模式匹配的kmp演算法詳解 這種由d.e.knuth,j.h.morris和v.r.pratt同時發現的改進的模式匹配演算法簡稱為kmp演算法。大概學過資訊學的都知道,是個比較難理解的演算法,今天特把它搞個徹徹底底明明白白。注意到這是乙個改進的演算法,所以有必要把原來的模式匹配演算法拿出來,其實理解...

Erlang函式與模式匹配(2)

在 erlang函式與模式匹配 中介紹了函式的定義方法與模式匹配在函式定義中的基本應用,本節繼續深入這個主題。一 元組在函式引數中的模式匹配 如果你需要定義乙個將厘公尺轉換為公尺的函式,最簡單的就是 convert x x 100.可是,如果使用者輸入了長度單位是分公尺的話,函式無法分辨,結果一定是...

模式的快速匹配與查詢

通過觀察可以得到乙個規律,需要匹配的字段 上圖中的 渠道 省份 運營商 要麼是乙個確定的數,要麼是all 表示所有 那麼我們把上圖轉換成下面的這張 這個圖和上面的圖不是一一對應哦。其實就是把上面的固定值替換成1,all替換成0。3個匹配字段,2個不同的值,根據數學的排列組合,總共的模式有2的3次方 ...