*/
@H_404_0@ class TestClass { @H_404_0@ // x是存储属性 @H_404_0@ var x: Int = 10
@H_404_0@ // y是计算属性 @H_404_0@ var y: Int { @H_404_0@ return x < 100 ? x : 100 @H_404_0@ }
@H_404_0@ init() { @H_404_0@ x = 9 @H_404_0@ print("初始化完毕") @H_404_0@ } @H_404_0@ }
@H_404_0@ var obj = TestClass()
@H_404_0@ /**
x 这个存储属性的缺省值是10
我们没有在构造方法里面设置初始值的话,那么它的值就是缺省值
*/
@H_404_0@ print(obj.x)
print("-------------------->")
@H_404_0@ func getValue() -> Int { @H_404_0@ print("get value") @H_404_0@ return 10 @H_404_0@ }
@H_913_301@
@H_404_0@ /**如果我们需要大量的运算,代码,消耗时间,获取这个存储属性的缺省值的时候。
*/
@H_404_0@ class TestClass1 {// x是存储属性 闭包的值赋给x
@H_404_0@ var x: Int = {// () -> Int in // 这一行可以省略
@H_404_0@ print("初始化开始") @H_404_0@ sleep(5) @H_404_0@ return 10 @H_404_0@ }()
@H_404_0@ // y是计算属性 @H_404_0@ var y: Int { @H_404_0@ return x < 100 ? x : 100 @H_404_0@ }
// Swift 3.0 不能这样做了 通过全局函数来设置缺省值
// var z: Int = getValue()
@H_404_0@ var z: Int = TestClass1.classGetValue() @H_404_0@ init() {
// x = 9
@H_404_0@ print("初始化完毕") @H_404_0@ }@H_404_0@ class func classGetValue() -> Int {
@H_404_0@ print("class get value") @H_404_0@ return 10 @H_404_0@ }
@H_404_0@ }
@H_404_0@ var obj1 = TestClass1.init() @H_404_0@ print(obj1.x)
// var ds: Int = self.getValue()
// print(ds)