美文网首页
Swift-流程控制器switch

Swift-流程控制器switch

作者: 守护地中海的花 | 来源:发表于2020-11-17 11:23 被阅读0次
image.png

简易代码

var number = 1
switch number {
case 0:
    print("0")
case 1:
    print("1")
default:
    print("default")
}
  • casedefault后面不能写大括号{}
  • 默认可以不写break不会贯穿到后面的条件
  • switch必须要保证能处理所有情况,如果能保证已处理所有情况,也可以不必使用default
  • casedefault后面至少有一条语句可以用break代替
  • switch也支持Character、String类型
  • case后面可以跟着多个条件case 0,5
  • 区间匹配、元组匹配

fallthrough贯穿

var number = 1
switch number {
case 0:
    print("0")
case 1:
    print("1")
    fallthrough
default:
    print("default")
}

控制台打印:
1
default

如果能保证已处理所有情况,也可以不必使用default

enum Answer {case right,wrong}
let answer = Answer.right
switch answer {
case Answer.right:
    print("对")
case Answer.wrong:
    print("错误")
}

复合条件

switch也支持Character、String类型

let name = "jack"
switch name {
case "Jack":
    print("我是 Jack")
case "jack":
    print("我是 jack")
default:
    break
}

区间匹配、元组匹配

let count = 2
switch count {
case 1...2:
    print("1...2")
default:
    break
}

let map = (x:1,y:2)
switch map {
case (1,2):
    print(map)
    fallthrough
case (-2...2,-2...2):
    print(map)
    fallthrough
case (_,_):
    print(map)
default:
    break
}
  • 可以用下划线 _ 忽略某个值
  • 关于case 匹配问题,属于模式(Pattern matching)匹配

值绑定

let point = (2,2)
switch point {
case (let x, 0):
    print("\(x),0")
case let (x,y) where x == y :
    print("x=y")
default:
    break;
}
  • 必要时let也可以改成var
  • where 语句应用

相关文章

网友评论

      本文标题:Swift-流程控制器switch

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