getter 方法,那么这个get 可以被省略
2.setter 可以设置新值名字,如果没有设置默认为newValue
3.let 不能修饰计算属性
监测属性
例子1:
class Circle...")
r = 2.0
print("函数执行结束")
}
calcalate(r: &circle.r)
运行结果:
函数执行开始
函数执行结束
有新值
提示:
1.监测属性,其实是给存储属性上添加的一种监测功能...,willSet 监测新值,didSet 监测旧值
2.如果函数的参数是inout 修饰的,你如果将监测的属性传入这个函数的时候,此时会将属性的值拷贝一份,在函数结束的时候,将值重新付给属性,所以函数执行完毕后...,会触发监测函数
Lazy 关键字使用(只能用于存储属性)
使用时Lazy必须注意
1.只能用于存储属性
2.修饰的属性必须有初始化
3.在结构体中使用Lazy 修饰的属性,在访问的方法前必须加...运行结果:
啥都没有
分析:
属性describe 是一个()->String 类型,后面跟的是他的值,它的值刚好是一个闭包类型 ,但是没有执行,我们让它执行一下
添加下面代码
let pd