1.委托属性: 语法是: val/var <属性名>: <类型> by <表达式>
2.https://www.cnblogs.com/liuliqianxiao/p/7157700.html
可空类型? ?. ?: !!.
?可为空
?.如果不为空
3.类布局
通常,一个类的内容按以下顺序排列:
属性声明与初始化块
次构造函数
方法声明
伴生对象
不要按字母顺序或者可见性对方法声明排序,也不要将常规方法与扩展方法分开。
而是要把相关的东西放在一起,这样从上到下阅读类的人就能够跟进所发生事情的逻辑。
选择一个顺序(高级别优先,或者相反) 并坚持下去。
将嵌套类放在紧挨使用这些类的代码之后。如果打算在外部使用嵌套类,
而且类中并没有引用这些类,那么把它们放到末尾,在伴生对象之后。