美文网首页
swift 学习笔记之二 可选项(optional)

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

作者: 小白e7899 | 来源:发表于2019-11-10 11:48 被阅读0次

    上一篇文章的结尾稍微介绍了下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)")

            }

    相关文章

      网友评论

          本文标题:swift 学习笔记之二 可选项(optional)

          本文链接:https://www.haomeiwen.com/subject/spfdbctx.html