- 闭区间运算符:a...b, a <= 去值 <= b。
let names = ["ZhangSan","LiSi","WangWu","ZhaoLiu"]
for i in 0...3 {
print(names[i])//ZhangSan、LiSi、WangWu、ZhaoLiu
}
let range = 1...3
for i in range {
print(names[i])//LiSi、WangWu、ZhaoLiu
}
let arrayFirst = 0
let arrayLast = 3
for i in arrayFirst...arrayLast {
print(names[i])//ZhangSan、LiSi、WangWu、ZhaoLiu
}
for var i in 1...3 {
i += 5
print(i)//6、7、8
}
for _ in 1...3 {
print("Hello !")//Hello !、Hello !、Hello !
}
- 半开区间运算符:a..<b, a <= 去值 < b。
for i in 1..<5 {
print(i)//1 2 3 4
}
-
单侧区间:让区间朝一个方向尽可能的远。
let names = ["ZhangSan","LiSi","WangWu","ZhaoLiu"]
for name in names[2...]{
print(name)//WangWu ZhaoLiu
}
for name in names[...2]{
print(name)//ZhangSan LiSi WangWu
}
for name in names[..<2]{
print(name)//ZhangSan LiSi
}
- 区间类型
//闭区间、半开区间、单侧区间
let rangeA:ClosedRange<Int> = 1...5
let rangeB:Range<Int> = 1..<5
let rangeC:PartialRangeThrough<Int> = ...5
//contains方法:范围内是否包含某个值。
let range = ...5
range.contains(7)//false
range.contains(4)//true
range.contains(-3)//true
//字符、字符串也能使用区间运算符。
let stringRange = "cc"..."ff"
stringRange.contains("cf")//true
stringRange.contains("df")//true
stringRange.contains("fg")//false
//ASCII字符
let chaacterRange:ClosedRange<Character> = "\0"..."~"
- 带间隔的区间值
for item in stride(from: 4, through: 10, by: 2) {
print(item)//4 6 8 10
}