Swift--05可选类型

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()

相关文章

软件简介:蓝湖辅助工具,减少移动端开发中控件属性的复制和粘...
现实生活中,我们听到的声音都是时间连续的,我们称为这种信...
前言最近在B站上看到一个漂亮的仙女姐姐跳舞视频,循环看了亿...
【Android App】实战项目之仿抖音的短视频分享App(附源码和...
前言这一篇博客应该是我花时间最多的一次了,从2022年1月底至...
因为我既对接过session、cookie,也对接过JWT,今年因为工作...