swift switch的几点用法

前端之家收集整理的这篇文章主要介绍了swift switch的几点用法前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

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

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

猜你在找的Swift相关文章