Kotlin lateinit 和 by lazy 的区别
2017-05-26 14:37
162 查看
1.lazy{} 只能用在val类型, lateinit 只能用在var类型 如 :
2.lateinit不能用在可空的属性上和java的基本类型上 如:
3.lateinit可以在任何位置初始化并且可以初始化多次。而lazy在第一次被调用时就被初始化,想要被改变只能重新定义
4.lateinit 有支持(反向)域(Backing Fields)
val name: String by lazy { "sherlbon" } lateinit var adapter: MyAdapter
2.lateinit不能用在可空的属性上和java的基本类型上 如:
lateinit var age: Int //会报错
3.lateinit可以在任何位置初始化并且可以初始化多次。而lazy在第一次被调用时就被初始化,想要被改变只能重新定义
4.lateinit 有支持(反向)域(Backing Fields)
相关文章推荐
- lateinit 和 by lazy 的区别(Kotlin)
- Web 应用的执行过程 -- 谈谈 WAD/CGI/ISAPI 的区别
- 关于MTS和COM+的区别.(个人理解dotnet是windows DNA和com+的延续,那么MTS应该逐渐退出舞台了)
- SQL中UNION 与 UNION ALL 的区别
- CSS中Class与ID的区别,Margin与Padding的区别
- 中国程序员和其它程序员的区别
- TextBox中的TextChanged和KeyDown事件的小区别
- 引用参数和输出参数的2个区别(以前偶只知道第一个)
- (旧文重贴)真是惭愧,翻译代码的过程中,才明白了new和override的区别。
- Java 查看器 和 Java Plug-in 查看器之间的区别
- static readonly与使用const的区别
- DataSet.WriteXml(String)与DataSet.WriteXml(Stream)的区别
- OptimalJ三个版本的区别(开发版、专业版、架构版)
- 指针问题的一点体会(区别 [指向指针的指针] 与 [指针的指针] .)
- 你知道他们的区别吗?
- 如何区别文本是BIG5还是GB?
- C#和VB.NET的区别
- Visual Basic 6.0 控件和 .NET 控件的区别
- Visual Basic 6.0 控件和 .NET 控件的区别