Swift基础 可选

本文对比Java中的空值处理方式,介绍了Swift中的可选类型及其使用方法,包括声明、取值、可选绑定及隐形解析可选类型的特性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

相对于Java,Swift有一大特点,可选类型,用于处理值可能缺失的情况。

Java的话,在值缺失的情况,还是可以使用的,不过会抛NullPointException异常。而Swift呢,提供了可选类型,使用前可以先“获取”,然后再使用,当然也可以“强行获取”。

声明

var name: String?
name = "Johan"
name = nil

在已有类型后面添加“?”即可声明为可选类型,例子中name为String的可选类型,当address没有值时为nil(Java中的null)。只有声明为可选类型时,才可以设置为nil。

取值

if name != nil {
    print("name is \(name!)")
}

获取值前,需判断是否为空,如果不为空,可以通过变量后面加“!”去“强行获取”值。

可选绑定

相对于上面“取值”方式来说,下面这种方式取值更为优雅

if let realName = name {
    print("name is \(realName)")
}

在 if 中,先尝试去获取name的值,如果name有值,realName便可获取realName的值;如果没有值,则不进入 if 块中。

隐形解析可选类型

var name: String!
name = "Johan"
print("name is \(name)")    // 没有用!取值

类型加“!”为隐形解析可选类型,和普通的可选类型相比,在获取值时不需要使用“!”获取,但是注意了,你要确定这个可选类型在第一次赋值之后一直有值,一般用于类的构造函数中。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值