swift 学习笔记之二 可选项(optional)

2019-11-10  本文已影响0人  小白e7899

上一篇文章的结尾稍微介绍了下swift中的optional

因为swift中任何类型都设置为可选项目optional,并且与oc的nil不一样,因此单独出来

没有默认值的可选项

var op: Int? // 声明一个可选项,没有设置默认值,这个时候op的值为nil

// var op: Int? = 6  这个是默认值的可选项

print(op)    // 输出nil 但是xcode会提醒你:Expression implicitly coerced from 'Int?' to 'Any'

print(op ?? 3) // 输出3, 这个意思是op如果有值,就输出op的值,如果没有值就输出3 ?? 称为合并空值运算符

?? 在swift中称为合并空值运算符 ,

?? 运算符, 第一个操作数必须为可选项,其实他是一种简写:op != nil ? op!  : 3;

op =1      // 重新设置值 这时候op的值为1

print(op!)  // op!表示对op强行解包,意思是告诉编译器op到这里一定有值,如果没有值,程序员负责程序的安全,程序运行到这里就停止 因为我们上一句代码赋值了,所以程序运行到这里不会出问题

if语句以及强制解开(强行解包)

可以利用if语句通过比较nil来判断可选项是否有值,利用相等运算符"==" 或者不相等运算符"!="

// 定义可选项

        var str:String?

        if str! = nil { 

            print("str可选项有值\(str!)")

        }

        str ="给可选项赋值"

        if str != nil{

            print("str可选项有值\(str!)")

        }

        // 可选项绑定

        if let rst = str { // 当可选项str 有值时,赋值给rst,并且进入if判断分支,在if的代码块中可以使用rst

            print("str可选项有值\(rst)")

        }

上一篇 下一篇

猜你喜欢

热点阅读