迅捷范围

低调…大调

Swift编程语言中的集合将相同类型的元素组合在一起。 Swift集合(数组,集合和字典)以与具有相似兴趣或个性的人一起闲逛并组成小队的方式存储值。

范围(…)是原始班级

Apple将范围定义为“可比较类型上的间隔”,通常是整数(Int)或Double类型。 但是,范围也可以被视为集合-索引的集合。 而且由于Swift集合都具有索引,因此Arrays,Sets和Dictionary Arrays是非常基础级别的索引(又称Ranges)集合:

分数= [88,90,88,93,97]是…

数组 = [0,1,2,3,4]→ 0…4

体育= [“足球”,“篮球”,“橄榄球”,“足球”)是…

设置 = [0,1,2,3]→ 0…3

州= [纽约:纽约州,加利福尼亚州:加利福尼亚州,内华达州:内华达州]是…

字典数组 = [0:1,1:2,2:3]→ 0…2

有两种类型的范围:

范围可以做什么:

范围可以一次更改数组中的多个值:

在上面的示例中,两个项目或值被添加到shoppingList数组中,特别是在索引范围3…4处。 删除“香蕉”和“冰淇淋”,​​并替换为“奶酪”和“葡萄”。 在这里,Range使更新数组的多个值更有效,因此我们不必通过一次执行shoppingList [index] =“ new item”来一次更改一个索引的值。 如果要删除的项目总数不等于要添加的项目总数,这也可以工作。

范围可以定义条件:

有时,我们可能希望我们的程序仅在“某些”条件为真或假的情况下运行。 对于可以用数值表示的条件,例如游戏中的功率水平,天气应用程序中的温度或车辆的速度,我们可以使用Range设置必要的参数。 在上面的示例中,速度的条件写为布尔语句(> = 0 && <= 90),但是我们可以将其转换或读取为范围从0开始直至90(0…90)的范围。

我们可以根据字符串值创建一个范围:

在上面的示例中,我们通过从较大的字符串(“ OCTOBER”)中隔离出一组值(“ TOBE”:索引0、1、2、3)来创建“字符串之外的值”。 然后,我们为索引范围为1…3的新子字符串定义索引参数。 接下来,将定义一个半开范围值类型(.. <)的subRange,它表示在对String调用subRange时,获取Range的String值,该值从索引1开始,但不包括3(1…2)。 这给出值“ OB”。

范围具有“很酷”的方法来调用:

尽管还有其他一些有用的(更酷的)方法可用于范围,例如.overlaps来确定两个范围是否相交,但通常称为Range方法的方法包括.count,.isEmpty和.index(of :)。 .distance计算两个索引值之间的距离; 包含检查值是否在范围内; .split会以给定的数字分隔一个范围以创建两个范围。

了解Ranges的功能并发现使用它们的机会可以帮助我们解决问题,并优化我们的代码效率。