范圍運算符

? ? Swift提供了多種范圍運算符,用來簡潔的表達范圍值。

閉合范圍運算符

? ? 閉合范圍運算符(a...b)定義一個表示從a到b的范圍,a的值必須不大于b

? ? 閉合范圍運算符在你希望迭代范圍中所有值的時候很有用,比如在for-in語句中:????????

? ??????for index in 1...5 {

????????? ? print("\(index) times 5 is \(index * 5)")

????????}

????????// 1 times 5 is 5

????????// 2 times 5 is 10

????????// 3 times 5 is 15

????????// 4 times 5 is 20

????????// 5 times 5 is 25”

半開范圍運算符

? ? 半開運算符(a..<b)定義了一個從a到b但是不包括的b的范圍。之所以稱之為半開運算符,因為它包含了開始值a但不包括結(jié)束值b,和閉合運算符一樣,a的值必須不大于b,如果a等于b,那么這個范圍是空。

? ? 半開運算符在處理以0為基準的列表類數(shù)據(jù)會很有用,比如數(shù)組,可以使用數(shù)組的數(shù)組的長度進行迭代:

????????let names = ["Anna", "Alex", "Brian", "Jack"]

????????let count = names.count

????????for i in 0..<count?{

????????? ? print("Person \(i + 1) is called \(names[i])")

????????}

????????// Person 1 is called Anna

????????// Person 2 is called Alex

????????// Person 3 is called Brian

????????// Person 4 is called Jack? ??

? ? 數(shù)字中包含4個元素,但是0..<count只迭代到3,也就是最后一個元素的索引,這就是半開范圍運算符。

單邊范圍運算符

? ? 如果范圍需要往一個方向持續(xù)疊加,閉合范圍運算符有一個替代的形式。比如要表示一個數(shù)組中索引為2的元素到最后一個元素的范圍。這些情況下,可以省略范圍運算符中一側(cè)的值。這種范圍被稱為單邊范圍運算符,因為范圍中值包含了一邊的值。比如:

? ??????for name in names[2...] {

????????? ? print(name)

????????}

????????// Brian

????????// Jack

????????for name in names[...2] {

????????? ? print(name)

????????}

????????// Anna

????????// Alex

????????// Brian”

????半開運算符也可以寫成單邊運算符的形式,只需要寫上最后的值。就和你同時包含2側(cè)的值一樣,最后的值不包含在范圍之內(nèi)。例如:

? ??????for name in names[..<2] {

????????? ? print(name)

????????}

????????// Anna

????????// Alex

? ? 除了下標運算,單邊運算符也可以用在其他場景中。省略了起始值的單邊范圍不可以被迭代,因為不知道從哪里開始迭代。省略了終止值的單邊范圍可以被迭代。省略了終止值的單邊范圍可以無窮盡的持續(xù)疊加,所以你必須要給循環(huán)添加一個明確的終止條件。你也可以檢查一個單邊運算符是不是包含了一個特殊的值,就像下面一樣:

? ??????let range = ...5

????????range.contains(7)? // false

????????range.contains(4)? // true

????????range.contains(-1)? // true

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關(guān)閱讀更多精彩內(nèi)容

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