print("可选类型")
/*可选类型
变量状态:
有值:具体内容
无值:nil,可用于条件判断
定义方式:
类型? :使用'!'进行强制解包;有值解包成功,无值运行错误
类型! :使用时自动解包;但要确保优质,无值时仍会发生运行时错误
*/
var v1: Int? = 250
if v1!%5 == 0 {
print("\(v1!)是5的倍数")
}
var v2: Int! = 250
if v2%5 == 0 {
print("\(v2)是5的倍数")
}
//解决办法
if (v1 != nil) && (v1!%5 == 0) {
print("\(v1!)是5的倍数")
}
if v2 != nil && v2%5 == 0 {
print("\(v2)是5的倍数")
}
//可选绑定
if let v3 = v1,v3%5 == 0 {
print("v3 = \(v3)")
}
//函数中可以这样使用,这样更安全
/*
如果一个或者多个条件不成立,可用guard语句来退出当前作用域。
guard 语句的格式如下:
guard 条件 else{
语句
}
guard语句中的条件的结果必须是Bool类型或者Bool的桥接类型,另外,条件也可以是一条可选绑定。
在guard语句中进行可选绑定的常量或者变量,其可用范围从声明开始直到作用域结束。
guard语句必须有else子句,而且必须在该子句中调用Never返回类型的函数,或者使用下面的语句退出当前作用域:
return
break
continue
throw
*/
func test() {
let v3:Int? = 5
guard let v4 = v3,v4%5==0 else {
return
}
print(v4)
}
test()
原文链接:https://www.f2er.com/swift/321709.html