加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

什么是快速范围内的“间隔”?

发布时间:2020-12-14 05:35:28 所属栏目:百科 来源:网络整理
导读:我知道有3种类型的范围:范围,步幅和间隔. var closed:ClosedInterval = 1.2...5.0var half_open:HalfOpenInterval = 1.2..5.0 什么是swift的间隔?他们使用的一个例子是什么? http://en.wikipedia.org/wiki/Interval_(mathematics) 编辑: 这就是beta 5 xc
我知道有3种类型的范围:范围,步幅和间隔.
var closed:ClosedInterval = 1.2...5.0

var half_open:HalfOpenInterval = 1.2..<5.0

什么是swift的间隔?他们使用的一个例子是什么?

http://en.wikipedia.org/wiki/Interval_(mathematics)

编辑:
这就是beta 5 xcode 6发行说明:

?间隔超过可比值,可以有效地检查遏制.间隔是
用于switch语句中的模式匹配以及?=操作符.

截至Swift 3(目前正在使用Xcode 8 beta版测试版,并且与Swift开源社区正在进行中),间隔类型不再存在.现在,范围< T>类型包括前一种范围和间隔类型的功能,并且还符合 new model for collection types and indices.

在Swift 2.x及更早版本中…范围用于迭代,间隔用于模式匹配.

func testNum(num: Int) {
    let interval: HalfOpenInterval = 0..<10
    let range = 10..<20
    switch num {
    case interval:    // this works
        break
    case range:       // error "does not conform to protocol IntervalType"
        break
    default:
        break
    }
}

优化范围类型以生成在范围内递增的值,并且可以对可以计数和递增的类型进行处理.

对间隔类型进行优化,以测试给定值是否位于间隔内.它与不一定需要递增概念的类型一起工作,并提供诸如将一个范围夹紧到另一个范围的操作(例如(0 ..< 10).clamp(5 ..< 15) 10)对复杂模式匹配有用. 因为..<和...运算符有两种形式,一种返回一个范围,一个返回一个间隔类型推断根据上下文自动使用正确的.因此,如果在switch语句的case标签中写入0 ..< 10,Swift会自动构造一个HalfOpenInterval,因为switch语句需要一个Interval类型. ?=运算符是一种在没有switch语句的情况下进行一次测试的方式.写间隔?=等价于interval.contains(value). 值得注意的是,您可以通过查看标准库界面及其注释来找出许多这些内容:在操场中写入类似于HalfOpenInterval的类型名称,然后单击命令以跳转到其定义.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读