加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

swift switch的几点用法

发布时间:2020-12-14 02:16:59 所属栏目:百科 来源:网络整理
导读:swift里面的 switch还真是灵活啊,由衷赞一个 //(1)定义重复的时候,只有第一个匹配上的才会被执行var num = 4switch num {case 0: println("0")case 1,2,3,4: println("1,4")case 4,5,6,7: println("4,7")case 8,9: println("8,9")default: break}//结果

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

//(1)定义重复的时候,只有第一个匹配上的才会被执行
var num = 4
switch num {
case 0:
    println("0")
case 1,2,3,4:
    println("1,4")
case 4,5,6,7:
    println("4,7")
case 8,9:
    println("8,9")
default:
    break
}
//结果 =》 1,4

//(2)可以定义一个范围
num = 4
switch num {
case 0..<4: //定义一个范围  [..<] 小于右侧数
    println("0")
case 1...4:
    println("1,4")
case 4...7:
    println("4,7")
case 8...9:
    println("8,4

//(3)可以为一个多值类型制定Swith,[_]下划线代表不作为匹配条件
var data = ("ABC","男",10)
switch data {
    
case ("ABC","女",0...10):
    println("第一行")
case (_,0...10):
    println("第二行")
default:
    break

}
//结果 =》 第二行
//(4)可以用计算式进行匹配
num = 5
switch (num % 3,num % 5) {
case (0,0):
    println("可以同时被3,5整除")
case (0,_):
    println("只能被3整除")
case (_,0):
    println("只能被5整除")
default:
    break
}
//结果 =》 第二行

//(5)可以直接把用于比较的内容转化为变量使用
data = ("ABC",let age):
    println("第二行 age :(age)") //10 可以作为参数使用
default:
    break
}
//结果 =》 第二行 age :10

//(6)把用于比较的内容转化为变量,的同时使用Where来指定一个复杂条件
data = ("ABC",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 = 5
switch num {
    
case 1...10:
    println("1...10")
case _:
    println("other all")
    
}

//第二种是枚举型作为条件
enum Sex {
    case man,woman,other
}

let s = Sex.man
switch s {
case .man,.woman:
    println("")
case .other:
    println("")
}
//也就是说在条件可以被全部网罗的情况下,可以不定义default

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读