7.4.4 属性的写入
可以通过属性的set方法为属性写入值。重写了set方法的属性一定也要重写get,这是Swift中的规定,也就是说计算属性要么是只读,要么是读写都可以,不会是只写不能读的。在Person中,年龄这个值是会随着时间而改变的,但是生日不会,所以存储生日,通过生日计算出用户的年龄是合理的做法:


重写age的get和set方法:通过生日和当前年份进行年龄的计算,在设置年龄时,根据当前年份推算出生日并保存,这样就可以保证无论经历多久,Person的年龄总是正确的。注意,在set方法中,不指定set传入的参数名时,Swift会提供newValue来代表set传入的参数。
回到main.swift中,在修改了年龄之后,打印年龄和生日,看看新属性的效果:

控制台输出如下:

写入年龄的时候,实际改变了生日,而读取年龄时又是使用生日进行推算的。