美文网首页
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