16.3 Swift可选链的返回值

来源:互联网 发布:js 对象 key 变量 编辑:程序博客网 时间:2024/06/06 00:05

        /**

         16.3-可选链的返回值

         

         通过可选链来调用相应的属性和方法

         这个属性的值 这个方法的返回值

         

         通过可选链调用取得的返回值会被包装成一个可续类型数据。

         可选链有可能失效返回nil,也有可能成功返回值也会包装成可选值。

         */

        

        

        class Person  {

            var name =""

            func whoami() ->String {

                print("My name is\(name)")

                returnname

            }

            

            init(name:String) {

                self.name = name

            }

        }

        

        var p1:Person = Person.init(name:"Tom")

        p1.name ="zhangsan"

        p1.whoami()

        

        

        

        var p0:Person?

        

        p0 = p1

        

        

        print(p0?.name)

        print(p0!.name)

        /**

         打印出

         Optional("zhangsan")   // 也就是我们通过可选链调用属性或者方法的返回值是可选数据。

         zhangsan

         */


        

        let t:String? = p0?.name

        let t1:String = p0!.name

        

        

        print("------------------------->")

        print(p0?.whoami())

        print(p0!.whoami())

        /**

         My name is zhangsan

         Optional("zhangsan")

         My name is zhangsan

         zhangsan

         */

        


0 0