12.8 Swift闭包或函数存储属性缺省值

        /**

         8)闭包或函数存储属性缺省值

         */

        

        class TestClass {

            // x是存储属性

            var x: Int = 10

            

            // y是计算属性

            var y: Int  {

                return x < 100 ? x : 100

            }

            

            init() {

                 x = 9

                print("初始化完毕")

            }

        }

        

        var obj = TestClass()

        

        /**

         x 这个存储属性的缺省值是10

         我们可以在构造方法init中修改它的值

         我们没有在构造方法里面设置初始值的话,那么它的值就是缺省值

         */

        print(obj.x)

        

     

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

  

        

        

        

        

        func getValue() -> Int {

            print("get value")

            return 10

        }

        


        /**

         什么情况下,我们采用闭包或者函数对存储属性赋初始值呢?

         如果我们需要大量的运算,代码,消耗时间,获取这个存储属性的缺省值的时候。

         */

        class TestClass1 {

            // x是存储属性   闭包的值赋给x

            var x: Int = {

//                () -> Int in  // 这一行可以省略

                

                print("初始化开始")

                sleep(5)

                return 10

            }()

            

           

            

            // y是计算属性

            var y: Int  {

                return x < 100 ? x : 100

            }

            

            // Swift 3.0 不能这样做了 通过全局函数来设置缺省值

//            var z: Int = getValue()

            

            var z: Int = TestClass1.classGetValue()

            init() {

//                x = 9

                print("初始化完毕")

            }

            

            class func classGetValue() -> Int {

                

                print("class get value")

                return 10

            }

            

        }

        

        var obj1 = TestClass1.init()

        print(obj1.x)

        

//        var ds: Int = self.getValue()

//        print(ds)


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值