美文网首页Swift Swift
Swift 中的Range类型和 Range运算符

Swift 中的Range类型和 Range运算符

作者: 赵邦华 | 来源:发表于2020-10-11 22:50 被阅读0次

Swift中有五个最常用的Range类型:
• ClosedRange: a...b
• Range a..<b
• PartialRangeThrough: ...b
• PartialRangeFrom: a...
• PartialRangeUpTo: ..<b

对应的,有五个Range运算符,用来定义上面的Range类型
• Closed Range Operator: a...b
• Half-Open Range Operator: a..<b
• Prefix Closed Range Operator: …b
• Postfix Closed Range Operator: a…
• Prefix Half-Open Range Operator: ..<b

ClosedRange

ClosedRange类型代表一个闭区间 [a, b]
其声明是:

struct ClosedRange<Bound> where Bound : Comparable

我们可以用 closed range operator (a...b) 创造一个ClosedRange实例

let closedRange: ClosedRange<Double> = 1.2...6.3

我们可以检查一个值是否在一个ClosedRange范围内

closedRange.contains(3.6)
// true

如果一个ClosedRange用整数作为其边界,我们可以把它用在for-in loop中

for i in -1…2 {
    print(i)
}
// -1
// 0
// 1
// 2

Range

Range类型代表一个右半开区间 [a, b),注意这里只能是右边开区间,左边必须是闭区间
其声明是:

struct Range<Bound> where Bound : Comparable

我们可以用 half-open range operator (a..<b)创造一个Range实例

let range: range<Double> = 1.2..<6.3

我们可以检查一个值是否在一个Range范围内

range.contains(3.6)
// true
range.contains(6.3)
// false, 因为上界是开区间

如果一个Range用整数作为其边界,我们可以把它用在for-in loop中

for i in -1..<2 {
    print(i)
}
// -1
// 0
// 1

PartialRangeThrough

PartialRangeThrough 类型代表一个左边界无穷的闭区间 (-infinite, b]
其声明是:

struct PartialRangeThrough<Bound> where Bound : Comparable

我们可以用 prefix closed range operator (…b)创造一个PartialRangeThrough实例

let partialRangeThrough: PartialRangeThrough<Double> = …6.3

我们可以检查一个值是否在一个partialRangeThrough范围内

partialRangeThrough.contains(3.6)
// true
partialRangeThrough.contains(6.3)
// true

如果一个PartialRangeThrough用整数作为其边界,我们可以用它代表一个 collection 类型的索引 (从 0 到上边界)

let numbers = [10, 20, 30, 40, 50, 60, 70]
print(numbers[...3])
// [10, 20, 30, 40]

PartialRangeFrom

PartialRangeFrom 类型代表一个右边界无穷的闭区间 [a, +infinite)
其声明是:

struct PartialRangeFrom<Bound> where Bound : Comparable

我们可以用 postfix closed range operator (a…)创造一个PartialRangeFrom实例

let partialRangeFrom: PartialRangeFrom<Double> = 1.2…

我们可以检查一个值是否在一个PartialRangeFrom范围内

partialRangeFrom(1.2)
// true
partialRangeFrom(6.3)
// true

如果一个PartialRangeFrom用整数作为其边界,我们可以用它代表一个 collection 类型的索引 (从下边界到结束)

let numbers = [10, 20, 30, 40, 50, 60, 70]
print(numbers[3…])
// [40, 50, 60, 70]

PartialRangeUpTo

PartialRangeUpTo 类型代表一个左边界无穷的开区间 (-infinite, b)
其声明是:

struct PartialRangeUpTo<Bound> where Bound : Comparable

我们可以用 prefix half-open range operator (..<b)创造一个PartialRangeUpTo实例

let partialRangeUpTo: PartialRangeUpTo<Double> = ..<6.3

我们可以检查一个值是否在一个PartialRangeUpTo范围内

partialRangeUpTo(1.2)
// true
partialRangeUpTo(6.3)
// false, 因为上界是开区间

如果一个PartialRangeUpTo用整数作为其边界,我们可以用它代表一个 collection 类型的索引 (从0到上边界-1)

let numbers = [10, 20, 30, 40, 50, 60, 70]
print(numbers[..<3])
// [10, 20, 30]

相关文章

  • Swift 中的Range类型和 Range运算符

    Swift中有五个最常用的Range类型:• ClosedRange: a...b• Range a..

  • 第四章: 序列类型range

    range是一种序列类型,range类型用于表示不可变的整数序列 可以调用内置函数range创建range类型的对...

  • Python | range数据类型、for循环及应用方式。

    一、再看range数据类型 了解range的类型的一些基本操作 1.range类型 range也是一种类型( ty...

  • 为什么 Python 的 Range 要设计成左开右闭区间?

    Python 的 Range 是左开右闭的,而且除了 Python 的 Range,还有各种语言,如 Swift ...

  • Swift Range

    说起区间,大家学过数学的应该都很清楚了,比如闭区间、开区间、半开半闭区间。今天为啥子说起Swift里的Range呢...

  • Swift - Range

    Range 和 CloseRange 判断一个值是否在范围内 以 Int 为例子 其中范围分为两种: Range ...

  • Swift Range

    Created by 大刘 liuxing8807@126.com[mailto:liuxing8807@126....

  • 21. vba range

    Worksheet 对象的 Range 和 Cells 属性Range 对象的 Range 和 Cells 属性W...

  • Python 复读笔记(2)

    for和range,list list函数可以将数据序列转化为list集合,是一个类型转换函数 range函数用来...

  • swift的Range

    1、Range 我们首先创建一个Range对象。 变量x表示了一个范围,范围的起始点为1,终点为10,并且包括1和...

网友评论

    本文标题:Swift 中的Range类型和 Range运算符

    本文链接:https://www.haomeiwen.com/subject/lmuypktx.html