Swift的基本知识(三)<可选类型?和隐式可选类型!>

在swift中,可选类型的根源其实是一个枚举类型,里面有some和none两种类型。其实就是所谓的nil就是optional.some,非nil就是optional.some。然后会通过some(T)
包装(wrap)原始值,对其进行拆包的过程。这里对enum optional的定义:
  enum Optional<T> : LogicValue, Reflectable {
        case None
        case Some(T)
        init()
        init(_ some: T)
        
        /// Allow use in a Boolean context.
        func getLogicValue() -> Bool
        
        /// Haskell's fmap, which was mis-named
        func map<U>(f: (T) -> U) -> U?
        func getMirror() -> Mirror  
    }
语法使用“?”操作符及“!”
 var optionParama : String? = "abc"
        optionParama = "ABC"
        //非空取默认值“abc”
        print(optionParama ?? "abc")
        optionParama = nil
        print(optionParama ?? "abc")
        //定义的可以为空,编译时会报警告,但是运行不会出错
        print(optionParama)
        
        var someParama : String! = "SDF"
        someParama = "sdf"
        print(someParama)
        //如果定义为非空的类型,如果在赋值为空,就会崩溃,但是编译不会报错
//        someParama = nil
//        print(someParama)
输出:
ABC
abc
nil
pdf

总结:在使用可选类型和隐式可选类型的时候,一定要明确使用的场景,看定义的属性是否会出现值为空的情况。
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值