swift switch的几点用法

来源:互联网 发布:制作生日快乐的软件 编辑:程序博客网 时间:2024/06/10 07:29

swift里面的 switch还真是灵活啊,由衷赞一个

//(1)定义重复的时候,只有第一个匹配上的才会被执行var num = 4switch num {case 0:    println("0")case 1, 2, 3, 4:    println("1, 2, 3, 4")case 4, 5, 6, 7:    println("4, 5, 6, 7")case 8, 9:    println("8, 9")default:    break}//结果 =》 1, 2, 3, 4
//(2)可以定义一个范围num = 4switch num {case 0..<4: //定义一个范围  [..<] 小于右侧数    println("0")case 1...4:    println("1, 2, 3, 4")case 4...7:    println("4, 5, 6, 7")case 8...9:    println("8, 9")default:    break}//结果 =》 1, 2, 3, 4
//(3)可以为一个多值类型制定Swith,[_]下划线代表不作为匹配条件var data = ("ABC", "男", 10)switch data {    case ("ABC", "女", 0...10):    println("第一行")case (_, "男", 0...10):    println("第二行")default:    break}//结果 =》 第二行
//(4)可以用计算式进行匹配num = 5switch (num % 3, num % 5) {case (0, 0):    println("可以同时被3,5整除")case (0, _):    println("只能被3整除")case (_, 0):    println("只能被5整除")default:    break}//结果 =》 第二行
//(5)可以直接把用于比较的内容转化为变量使用data = ("ABC", "男", 10)switch data {    case ("ABC", "女", 0...10):    println("第一行")case (_, "男", let age):    println("第二行 age :\(age)") //10 可以作为参数使用default:    break}//结果 =》 第二行 age :10
//(6)把用于比较的内容转化为变量,的同时使用Where来指定一个复杂条件data = ("ABC", "男", 10)switch data {    case ("ABC", "女", 0...10):    println("第一行")case (_, "男", let age) where age * 10 < 100 :    println("第二行 age :\(age)")case (_, "男", let age) where age * 10 <= 100 :    println("第三行 age :\(age)")default:    break}//结果 =》 第三行 age :10
//(7)关于default,default默认是必须要有的,但是下面两种情况可以不再定义default。//第一种情况是使用通配符 [——] 下划线num = 5switch num {    case 1...10:    println("1...10")case _:    println("other all")    }//第二种是枚举型作为条件enum Sex {    case man, woman, other}let s = Sex.manswitch s {case .man, .woman:    println("")case .other:    println("")}//也就是说在条件可以被全部网罗的情况下,可以不定义default


0 0
原创粉丝点击