Swift 區(qū)間運算符(Range)

在本文中,您將了解Swift的Range,類型和用例。

Range(區(qū)間)是值的間隔。一個簡單的范圍示例是0、1、2、3、4、5、6、7、8、9,因為數(shù)字從0到9是連續(xù)的。

我們可以使用下面描述的兩個范圍運算符快速創(chuàng)建區(qū)間:

1.閉區(qū)間運算符(lowerBound ... upperBound)

它包括間隔(lowerbound到upperBound)中的所有值。使用…(3個點)運算符聲明。

例如: 1...3 定義包含值為1,2,3的范圍

2.半開區(qū)間運算符(lowerBound .. <upperBound)

它包括區(qū)間(lowerbound到upperBound)中的所有值,但不包括最后一個(upperBound)數(shù)。使用 ..< 運算符聲明它。

例如: 1..<3 定義包含值1和2的范圍

區(qū)間類型

1.封閉區(qū)間(lowerBound ... upperBound)

使用封閉區(qū)間運算符創(chuàng)建的范圍稱為封閉區(qū)間。它包括從下限到上限的所有值。

示例1:使用for-in循環(huán)打印閉合區(qū)間值

//1... 3定義包含值1、2和3的范圍
for value in 1...3 {
	print(value)
}

運行該程序時,輸出為:

1
2
3

上面的示例創(chuàng)建了一個包含1到3(1...3)的數(shù)字的范圍。我們使用了一個for-in循環(huán)來查看范圍包含哪些值。要了解有關(guān)for-in循環(huán)的更多信息,請訪問Swift for-in循環(huán)。

使用for-in循環(huán),我們可以看到封閉區(qū)間包含給定范圍內(nèi)的所有值,包括下限(1)和上限(3)。

2.半開區(qū)間(lowerBound .. <upperBound)

使用半開區(qū)間運算符創(chuàng)建的區(qū)間稱為半開區(qū)間。它包括從下限到上限的所有值,但不包括上限值。

示例2:使用for-in循環(huán)打印半開區(qū)間值

// 1..<3 定義一個包含值的范圍 1,2
for value in 1..<3 {
	print(value)
}

運行該程序時,輸出為:

1
2

在上面的示例中,我們使用了for-in循環(huán)來查看半開區(qū)間的工作原理。

不用打印所有值,我們可以清楚地看到使用半開區(qū)間運算符僅打印1和2,并且不包括上限值(即3)。

3.單側(cè)區(qū)間

單側(cè)區(qū)間是指在一個方向上盡可能連續(xù)的區(qū)間??梢允褂冒腴_范圍區(qū)間運算符和閉合區(qū)間運算符來創(chuàng)建它,但運算符只能在一側(cè)具有值。

示例3:單側(cè)區(qū)間小于2

let range = ..<2
print(range.contains(-1))
print(range.contains(2))

運行該程序時,輸出為:

true
false

上面的示例使用半開區(qū)間運算符創(chuàng)建一個單側(cè)區(qū)間,該區(qū)間包含小于2的任何數(shù)字。

為了驗證我們的結(jié)果,我們使用了 contains 方法。如果元素位于區(qū)間內(nèi),則 contains 方地返回true,否則返回false。

range.contains(-1) 檢查 -1 是否在區(qū)間內(nèi)。由于其單側(cè)區(qū)間的上限為2 且-1 <2,因此它位于區(qū)間內(nèi),并且語句print(range.contains(-1)) 在屏幕中輸出true。

但是,由于使用半開區(qū)間運算符,上限值(2)不包含在區(qū)間內(nèi)。因此,range.contains(2) 返回 false。

示例4:從2開始的單側(cè)區(qū)間

let range = 2...
print(range.contains(100))
print(range.contains(1))

運行該程序時,輸出為:

true
false

上面的示例使用封閉區(qū)間運算符創(chuàng)建一個單側(cè)區(qū)間,該范圍包含從2到大于2的任何值的數(shù)字。

range.contains(100) 檢查100是否在區(qū)間內(nèi)。由于是單側(cè)區(qū)間,并且100大于2,因此它位于范圍內(nèi),并在屏幕上打印輸出 true。

但是,它具有下限值(2),因此 range.contains(1) 返回false。

注意事項

  • 區(qū)間的起點必須小于或等于其終點。在我們的示例中 (lowerBound...upperBound) ,下限值必須小于上限值。但是,它可以是負(fù)值。
    例如:

    3...1  // 錯誤:無法使用upperBound <lowerBound形成Range
    -3...1 // 這是一個有效區(qū)間。Lowerbound/Upperbound 可以包含負(fù)值。
  • 我們可以使用for-in循環(huán)遍歷整個區(qū)間(不包括單側(cè)區(qū)間)。

  • 我們還可以使用區(qū)間運算符訪問數(shù)組的元素。

丰满人妻一级特黄a大片,午夜无码免费福利一级,欧美亚洲精品在线,国产婷婷成人久久Av免费高清