Swift 可选类型使用及设计思路推测, ?、!、 ??等的用法

本文深入探讨Swift中的可选类型,包括强制解析、可选绑定、隐式解析可选类型及其在类型安全中的作用。通过示例,解释了如何避免OC中nil带来的问题,并介绍了Swift特有的语法糖,如双重问号操作符。Swift的可选类型提供了更强大的nil处理方式和优雅的编程体验。
摘要由CSDN通过智能技术生成

在可选类型之前,我们有个概念要搞清楚,类型安全。 什么是类型安全呢? 从字面上理解,就是这个类型是安全的,即这个类型不可以被赋予其他类型的值。 比如一个string类型的变量,不可以被赋值一个int值。
OC是不是类型安全呢? 不是的,比如很多对象都可以被赋予nil,这就属于赋予其他类型。

在OC中,如果想要判断某个值是否含有有效值,我们通常会使用nil来判断,但是nil的作用范围仅限于大部分对象,对于struct等类型,还需要判断是否NSNotFound等

基于此,Swift语法中进行了改良,提供了可选类型,可选类型更像是一个集合,表明这个类的实例属于{该类, nil} 中的一种。上述提到Swift是类型安全的语言,一个对象,要么是属于一个类,要么是属于nil,我们无法将nil赋值给一个Int类型的对象,但是可以将nil赋值给一个Optional Int对象

//   swift/stdlib/public/core/Optional.swift
public enum Optional : ExpressibleByNilLiteral {
    case none   //要么是none
    case some(Wrapped) //要么是某个类
    
    public init(_ some: Wrapped)
    public func map(_ transform: (Wrapped) throws -> U) rethrows -> U?
    public func flatMap(_ transform: (Wrapped) throws -> U?) rethrows -> U?
    public init(nilLiteral: ())
    public var unsafelyU
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值