当前位置: 首页 > news >正文

成都网站建设哪家好文章威县做网站哪里便宜

成都网站建设哪家好文章,威县做网站哪里便宜,流量与网站,做生意必定红火的公司名字Kotlin 中的属性是使用var或val关键字声明的。Late init 和 lazy 都是用来初始化以后要用到的属性。 由于这两个关键字都用于声明稍后将要使用的属性#xff0c;因此让我们看一下它们以及它们的区别。 Late Init 在下面的示例中#xff0c;我们有一个变量 myClass#xff0…Kotlin 中的属性是使用var或val关键字声明的。Late init 和 lazy 都是用来初始化以后要用到的属性。 由于这两个关键字都用于声明稍后将要使用的属性因此让我们看一下它们以及它们的区别。 Late Init 在下面的示例中我们有一个变量 myClass该变量首先使用 lateinit 进行初始化然后稍后为其赋值。使用 isInitialized方法我们能够判断该变量是否已初始化。 fun main() {MySchool().initializeClass() }class MySchool {lateinit var myClass: Stringfun initializeClass() {println(Has my class started? this::myClass.isInitialized)myClass Scienceprintln(Has my class started? this::myClass.isInitialized)} }当我们运行代码块时输出将如下所示 我们可以在第一行打印中看到变量虽然已声明但尚未初始化因此返回 false。为变量赋值后它返回 true。 Lazy lazy 关键字初始化一个对象只有在访问它时才会创建该对象。 在下面的示例中我们将延迟初始化 myPoem 变量。我们可以看到这个变量只有在调用的时候才被创建第二次调用的时候使用的是和之前一样的引用。 fun main() {var poem MyPoem();println(poem.poemTitle);println(My Second Poem is Polly the sheep--poem.poemTitle); }class MyPoem {val poemTitle: String by lazy {println(Billy The Goat)Verse One} }当我们运行代码块时输出将如下所示 lateinit 和 lazy 的区别 lateinit 属性不能为 nullable但 lazy 属性可以为 nullable。 //lateinit modifier is not allowed on properties of nullable types-compilation error lateinit var myClass: String?// no compilation error val poemTitle: String? by lazy {println(Billy The Goat)Verse One }Lateinit用于声明可变变量即使用关键字var而lazy用于声明不可变变量使用关键字val。 Late init不能用于声明原始数据类型如Int而lazy可以用于声明原始数据类型。 //lateinit modifier is not allowed on properties of primitive type-compilation error private lateinit var myAge : Int//no compilation error val myAge by lazy {100 }延迟初始化是线程安全的而lateinit没有定义线程安全。 另一篇文章的总结 Lateinit 和 Lazy 有什么区别 修饰符“lateinit”仅限于可变var变量属性而修饰符“ lazy”专门用于只读val属性。 标记为“lateinit”的属性可以在运行时根据需要多次赋值而标记为“lazy”的属性只能在第一次使用时赋值一次。 不可能将原始数据类型声明为“lateinit”属性而“惰性”属性可以是原始数据类型或非原始数据类型。比如 Int 虽然无法确保“lateinit”属性的线程安全但对于“惰性”属性我们可以选择同步选项例如 SYNCHRONIZED、PUBLICATION 或 NONE。这就是我们在使用 Singleton 设计模式时使用 lazy 的原因。 与不能声明为 nullable 的“lateinit”属性不同“lazy”属性可以定义为 nullable 或 non-nullable。 虽然“lateinit”属性不能有自定义的 getter但“惰性”属性包含一个代码块该代码块在第一次调用该属性时运行。 在初始化之前尝试访问“lateinit”属性会导致指定未初始化属性的明显异常。另一方面“惰性”属性在初始化之前无法访问。重要的是要注意“惰性”属性可以为 null但它仍会在第一次访问该属性时被初始化。 lazy in Kotlin is useful in a scenario when we want to create an object inside a class, but that object creation is expensive and that might lead to a delay in the creation of the object that is dependent on that expensive object. So, we need to understand that the object will get initialized only when it is accessed for the first time, else it will not get initialized. 文章出处 https://medium.com/huawei-developers/kotlin-lateinit-vs-by-lazy-initialization-example-tutorial-c19d84216480 https://medium.com/wambuinjumbi/differences-between-lateinit-and-lazy-a8164330b93f
http://www.tj-hxxt.cn/news/229823.html

相关文章:

  • wordpress整站导入哈密建设集团有限责任公司网站
  • 大背景类型的网站设计品牌的网站建设一般多少钱
  • 济南建设工程信息网站腾讯企点app下载安装
  • 广州网站优化推广方案中国施工企业管理协会官网
  • 投资建设集团网站首页成都青白江网站建设
  • 北京网站改版有哪些好处做soho 怎么建立网站
  • 网站建设怎么申请空间网站建设合同 免责声明
  • 个人电脑可以做网站服务器吗广东网站开发收费
  • 建设通同类网站微信工作平台开发
  • 和各大网站做视频的工作制作表格的软件app
  • 网站建设平台选用分析政务服务和数字化建设局网站
  • 梧州网站平台建设公司做网站点击量有用吗
  • 淘宝客网站做百度推广网站开发的技术意义
  • 广东网站设计公司那曲地区建设局网站
  • 厦门电商网站开发青岛做网站eoe
  • 网站开发问题论文做网站注册会员加入实名认证功能
  • 中国建设银行手机银行家网站广西做网站公司
  • 企业网站优化培训模版之家官网
  • netcore网站开发实战wordpress推广网站插件
  • 教育培训网站建设方案模板网上商城推广方案
  • 织梦网站关闭手机版有哪些好的做问卷调查的网站好
  • 莱阳建设局网站wordpress编辑远程图片
  • 怎么做营销型网站设计wordpress加广告位
  • 桂林北站到阳朔网页制作与设计先学什么
  • 卖彩票的网站怎么做的苏州网站建设与网络营销
  • 素材网站官网河南工程招标网站
  • 专业网站建设比较好怎么联系百度人工服务
  • 网站图片不轮播网站现在用h5做的吗
  • 定制网站建设公司有哪些wordpress 主题颜色
  • 明企科技网站建设系统seo实战培训费用