一. for & 区间运算符
//闭区间 closedRange
for index in 0...3 {
print(index) //0 1 2 3
}
//开区间 Range
for index in 0..<3 {
print(index) //0 1 2
}
//单侧区间 partialRangeThrough partial:美 [ˈpɑːrʃ(ə)l] adj. 部分的,不完全的;偏袒的,不公平的;偏爱的
let chars = ["a", "b", "c"]
for char in chars[0...] {
print(char) //a b c
}
for char in chars[...2] {
print(char) //a b c
}
for char in chars[...] {
print(char) //a b c
}
for char in chars {
print(char) //a b c
}
//range是否包含
let range = 0...5
range.contains(-1) //false
range.contains(5) //true
let rang1 = "aa"..."zz"
rang1.contains("b") //true
rang1.contains("bb")//true
//带间隔的区间
//stride 美 [straɪd] n. 大步,阔步;步态,步伐;步距,步幅;步速;进展
for tick in stride(from: 1, through: 10, by: 2) {
print("tick_\(tick)")
}
二. switch
// 不需要加{}
// 不需要加break
// 想要贯穿,使用fallThrough
let switchNum = 1
switch switchNum {
case 1:
print("1")
fallthrough
case 2:
print("2")
case 3,4,5:
print("3 4 5")
case 1..<5:
print("1..5")
default:
print("")
break
}
//使用where做筛选过滤
let for_where = [1, 2, 3, 4, 5]
var for_sum = 0
for num in for_where where num > 3 {
for_sum += num
}
print("for_sum=\(for_sum)")
//可选项使用switch
var o: Int? = 10
switch o {
case let p?://如果不为nil,则解包并把值给p
print(p)
case nil:
print("nil")
}
//和上面一样的用途
switch o {
case .some(p):
print(p)
case .none:
print("nil")
}
网友评论