swift 学习记录(可选类型 Optionals)

当我们不确定某个值的类型,或者不确定他是否有值时。swift 为我们提供了一个 可选 类型供我们使用。

好,接下来我们看一段代码

let possibleNumber = "123"
let convertedNumber = Int(possibleNumber)
print("convertedNumber is \(convertedNumber)")
//convertedNumber is Optional(123)

 将 字符串 possibleNumber 转换为 Int 类型,我们可以看到,其结果不是我们预期的123 而是一个  Optional(123)

这时,我们想要得到 我们想要的 123 可以这样做

let possibleNumber = "123"
let convertedNumber = Int(possibleNumber)!
print("convertedNumber is \(convertedNumber)")
//convertedNumber is 123</span></p>

后面的 ! 表示使用 可选类型常量的值

但是当我们的字符串 内容不是 数字时,会怎么样呢?我们将代码稍作改动,在看一下效果:

let possibleNumber = "swift"
let convertedNumber = Int(possibleNumber)!
print("convertedNumber is \(convertedNumber)")
运行这段代码,我们看到会出现一个致命错误 

fatal error: unexpectedly found nil while unwrapping an Optional value

很明显,字符串“swift” 是不可能转换成一个Int 类型的数字。得到的结果是 nil (缺少一个合法对象)

这个时候我们该怎么做,才能保证不出错呢?

这个时候,我们就可以将 convertedNumber 定义为 可选的Int 类型

let possibleNumber = "swift"
let convertedNumber :Int? = Int(possibleNumber)
print("convertedNumber is \(convertedNumber)")

if convertedNumber != nil{
    print(convertedNumber!)
}
//convertedNumber is nil
这个时候就不会出错,而是打印出结果 convertedNumber is nil。再将 字符串 改为 “123”就会执行 if 里面的打印语句,打印出我们想要的结果 123

注意:使用可选类型常量(变量)的值,使用 !

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值