美文网首页
swift-可选链的使用

swift-可选链的使用

作者: 小熊_07cb | 来源:发表于2024-06-13 23:47 被阅读0次

在Swift中,可选链(Optional Chaining)是一种访问连接在一起的可选值属性的方式,而不需要强制解包。如果其中的一个可选值是nil,那么整个可选链的访问都会失败,并且返回nil。这是一种处理可选值的安全方式,可以防止强制解包的运行时错误。

  • 创建三个类 Person 、Dog、Toy
         //
        class Person {
            var name : String  = ""
             // 可选类型 狗
            var dog : Dog?
        }

        class Dog {
            var weight : Double = 0
            //可选类型 玩具
            var toy : Toy?
        }
        
        //玩具类
        class Toy {
            var price : Double = 0.0
            func flying() {
                NSLog("飞盘在飞---")
            }
        }
        
        // 2.创建类的对象 并给对象属性赋值
        let p = Person()
        p.name = "小明"
        let d = Dog()
        d.weight = 60.0
        let t = Toy()
        t.price = 20.5
        
        p.dog = d
        d.toy = t
  • 可选类型使用
        // 3. 取出小明的狗的玩具的价格
        //该写法非常危险:
        let dog = p.dog
        let toy = dog?.toy
        let price = toy?.price
       
         // 该写法非常麻烦
          if let dog = p.dog {
              if let toy = dog.toy {
                  let price = toy.price
              }
          }
       
        // ?.就是可选链:系统会自动判断该可选类型是否有值,如果有值,则解包,如果没有值,则赋值为nil
        // 注意:可选链条获取的值,一定是一个可选类型
        // 推荐写法
        let price = p.dog?.toy?.price // 输出 Double/nil
        //或者
        if let price2 = p.dog?.toy?.price {
            print(price2)
        }
        
        // 3.2  给小明的狗的玩具赋值一个新的价格
        // 如果可选链中有一个可选类型是没有值的,那么这条语句直接不执行
        p.dog?.toy?.price = 50
        
        // 3.3 可选链调用方法
        if let dog = p.dog {
            if let toy = dog.toy {
                toy.flying()
            }
        }
        
        p.dog?.toy?.flying()


相关文章

  • swift-可选链

  • 【骚操作系列】一、如何通过babel配置使用可选链`?.`和双问

    如何通过babel配置使用可选链?.和双问号?? 什么是可选链 https://developer.mozilla...

  • swift面向对象基础<三>

    接下来就讨论一下可选链,类型属性和类型方法,构造器 1.可选链是用于处理可选类型的属性,方法和下标2.使用可选链代...

  • Swift-13.可选类型深入探讨

    本章包含内容: 可选类型深入探讨 可选链的介绍 可选链的返回值 可选链调用下标索引 可选链的赋值操作 基于多层链接...

  • Swift-可选类型

    使用可选类型(optionals)来处理值可能缺失的情况。可选类型表示: 有值,等于 x 或者 没有值 可选的概念...

  • Swift-可选型

    可选型的声明 可选型的基本用法 可选型更多用法 隐式可选型的用例

  • Swift-可选坑

    可选类型 文章(一) 声明变量或常量的时候,代表可以有值,也可以无值。在类型标注后面,用?表示当其没有值时可以赋值...

  • Swift-可选类型

    在值可能不存在的情况下,您可以使用可选值。 可选表示两种可能性:有一个值,您可以解开可选值以访问该值,或者根本没有...

  • swift- 可选值

    什么是可选值 - 可以设置为nil sweift - 默认不可以给设置为nil - 默认不...

  • swift-可选类型

    使用!来获取一个不存在的可选值会导致运行时错误。使用 ! 来强制解析值之前,一定要确定可选包含一个非 nil的值。

网友评论

      本文标题:swift-可选链的使用

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