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.jb51.cc/swift/321709.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。