美文网首页
Kotlin laterinit 与 by lazy

Kotlin laterinit 与 by lazy

作者: 差不多先生Ai | 来源:发表于2019-04-21 23:45 被阅读0次

    laterinit 与by lazy 是Kotlin中两种不同延迟初始化的实现。

    laterinit 只用于变量var     by lazy 只用于常量val

    lazy()方法只是接受一个lambda并返回一个Lazy<T> 实例的函数,返回的实例可以作为实现延迟属性的委托:第一次调用get()会执行已传递给lazy()的lambda表达式并记录结果,后续调用get()只是返回记录的结果。

    lazy()方法常用于只获取不赋值并且多次使用的对象。

    laterinit则用于只能生命周期流程中进行获取或者初始化的变量

    laterinit 不能用于可空的属性上和java的基本类型上:(Int、Long等)

    laterint 可以在任何位置初始化,并且可以初始化多次。而by lazy只初始化一次

    相关文章

      网友评论

          本文标题:Kotlin laterinit 与 by lazy

          本文链接:https://www.haomeiwen.com/subject/igwsgqtx.html