swift变量的可选(Optional)类型

Swift变量的可选(Optional)类型,用于处理值缺失的情况。可选表示"那儿有一个值,并且它等于 x "或者"那儿没有值"

当你声明一个可选变量或者可选属性的时候没有提供初始值,它的值会默认为nil

如果一个可选类型的实例包含一个值,你可以用后缀操作符!来访问这个值。但使用操作符!去获取值为nil的可选变量会有运行时错误。

你可以用可选链接和可选绑定选择性执行可选表达式上的操作。如果值为nil,任何操作都不会执行,也不会有运行报错。


// 定义变量,且未初始化值时,同时未使用符号" ! ",或" ? "则会报错。符号" ! ",或" ? "必须紧接在变量类型之后(未初始化值时,必须声明类型)
var name : String!
print("name: \(name)")
        
name="DevZhang"
        
if name == nil
{
         print("name is nil")
}
else
{
         print("name is \(name)")
}
        
if (name != nil)
{
         print("name is \(name)")
}
else
{
         print("name is nil")
}

// 可选值可以使用if语句进行判断
let className:String? = "class 8"
if (className != nil)
{
            print("class name is \(className)")
}

// 可选值可以使用有感叹号!进行强制解析,强制解析时必须有值(如果可选值没有值时,强制解包会出现编译进行时异常crash)
let subClassName:String = className!
print("sub class name is \(subClassName)")
// 使用可选绑定(即不声明变量的数据类型),避免强制解包时的异常
if let subClassName2 = className
{
            print(subClassName2)
}

// optionals可选值,数据类型后添加关键字!表示隐式解析,即确保变量总是有值,获取值时无需再进行解析。
let gladeName:String! = "glade 3"
print(gladeName)

let subGladeName:String = gladeName
print(subGladeName)





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

番薯大佬

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值