swift中可选类型个人总结

来源:互联网 发布:直播人气软件 编辑:程序博客网 时间:2024/05/17 22:34

以下均为个人总结方便理解,不代表官方

一、定义

Objective-C中的nil:表示缺少一个合法的对象,是指向不存在对象的指针,对结构体、枚举等类型不起作用(会返回NSNotFound)

Swift中的nil:表示任意类型的值缺失,是一个确定的值,要么是该类型的一个值要么什么都没有(即为nil)


二、申明

比如声明一个Int类型的

代表申明可选Int类型的常量,初始值为1,Int?表示可选的Int类型,是可以为nil的,但是如果不加,则不可以赋值为nil(和OC中不同,可以赋值为0,但是不可以为nil)

var num: Int? = 1; 


三、用法

// let defaultAddress: String = nil // 错误用法

        let defaultAddress:String? = nil // 正确用法

        iflet address = defaultAddress {// 如果defaultAddress有值或类型转换成功,则将值赋值给address直接使用

            print("您的地址是\(address)") // 使用address代替defaultAddress,且不需要加!强制解析

        } else {

            print("对不起,您不存在地址信息")

        }


四、空白运算符

a ?? b,判断a是否为nil,若a不为nil,则对a解封,否则返回b的值

比如 var a: Int?

a ?? 0,因为a为nil,这a赋值0

比如 var a: Int ? = 1

a ?? 2, 因为a不为nil,则a为1









原创粉丝点击