顾名思义,这是指一个延迟初始化的变量。在kotlin里面,如果在类型声明之后没有使用符号?,则表示该变量不会为null。但是这个时候会要求我们初始化一个值。有些时候,我们在声明变量的时候,并不能初始化这个变量。

一个声明成lateinit的变量,如果在整个代码里面都没有进行任何的初始化,那么能否编译通过?如果你加上了lateinit关键字,kotlin的编译器不会做这种检查。如果你将变量声明为lateinit,它就认为你肯定会初始化,至于你是怎么初始化它的,它就不管了

1. lateinit 延迟加载

2.lateinit 只能修饰, 非kotlin基本类型

3如果你的代码真的显示初始化了lateinit变量,而又抛出了UninitializedPropertyAccessException异常, 因为你恰好将变量初始化为null了

因为Kotlin会使用null来对每一个用lateinit修饰的属性做初始化,而基础类型是没有null类型,所以无法使用lateinit。

kotlin 中关键字 lateinit相关推荐

  1. Kotlin 中的初始化lazy和变量lateinit

    Kotlin 通常要求我们在定义属性后立即对其进行初始化.当我们不知道理想的初始值时,这样做似乎很奇怪,尤其是在生命周期驱动的 Android 属性的情况下. 幸运的是,有一种方法可以解决这个问题.如 ...

  2. Kotlin中的数据存储

    数据存储 1 持久化技术简介 数据持久化就是指将那些内存中的瞬时数据保存到存储设备中,保证即使在手机或计算机关机的情况下,这些数据仍然不会丢失. 保存在内存中的数据是处于瞬时状态的,而保存在存储设备中 ...

  3. Kotlin中使用简洁明了的代码替换findViewByid

    第一种(推荐使用) Kotlin Android 扩展插件(Android Studio 内置) 首先添加 apply plugin: 'kotlin-android-extensions' 官方示例 ...

  4. Kotlin中的Java静态方法等效于什么?

    本文翻译自:What is the equivalent of Java static methods in Kotlin? There is no static keyword in Kotlin. ...

  5. 【Kotlin】Kotlin 中使用 ButterKnife ( 仅用于适配 Kotlin 语言 | 不推荐新项目使用 )

    文章目录 I . 特别注意 : ButterKnife 已停止维护 ( 新项目禁止使用该框架 ) II . Android Studio 中配置 Kotlin 和 ButterKnife 步骤 III ...

  6. Kotlin中的高阶函数

    博客地址sguotao.top/Kotlin-2018- 在Kotlin中,高阶函数是指将一个函数作为另一个函数的参数或者返回值.如果用f(x).g(x)用来表示两个函数,那么高阶函数可以表示为f(g ...

  7. java中使用kotlin_在Kotlin中使用libGDX

    java中使用kotlin 最近,我一直在阅读有关不同语言的信息,以及它们可以为已经拥挤的软件开发人员带来什么,并且一种语言对我来说很突出:Kotlin. ( https://kotlinlang.o ...

  8. python kotlin_在Python,Java和Kotlin中标记参数和重载

    python kotlin 在多种语言之间跳来跳去可以帮助您注意到不同语言的习惯用法和最佳做法之间的某些差异. 比较有趣的差异之一与一个函数执行多项操作有关. Python 我们先来看一下Python ...

  9. 在Kotlin中使用libGDX

    最近,我一直在阅读有关不同语言的信息,以及它们可以为已经拥挤的软件开发人员带来什么,而一种语言对我来说很突出:Kotlin. ( https://kotlinlang.org/ ) 这是一种相对较新的 ...

最新文章

  1. 递归实现牛顿法求整数平方根(原理: 给一个初始值(比如X1 = a/2)迭代求a的平方根,设定一个误差限,不断逼近a X1 = a/2 X2 = (X1+a/X1)/
  2. dmz“非军事化区”
  3. 人工智能筑起网络安全“铜墙铁壁”
  4. C++随笔——虚拟继承
  5. 数据处理之判断值是否为nan(空值)记录
  6. html5 实现波浪效果图,利用HTML5实现Canvas流动的波浪特效
  7. php 读取excel转数组中,thinkphp5使用PHPExcel读取excel csv到数组
  8. mysql 5.7 严格模式_mysql 5.7中严格模式的问题
  9. qchart能绘制三维_通图GIS | 用多种体展示方案适配复杂三维场景分析、表达
  10. C语言-基础例题55道
  11. CSDN自定义模块简单设置之——添加图片、文字、链接等
  12. pg数据库表存放在哪里_pg数据库系统表
  13. 计算机键盘芯片,键盘的内部结构_键盘_键鼠导购-中关村在线
  14. 快速简单对接【短信验证码】API接口
  15. 第八讲:工业网络——单环冗余(理论)
  16. 如何安装Tomcat 8.0
  17. RTOS 任务间互斥的问题
  18. 前端实习生如何快速适应公司项目
  19. JAVA 特约商户进件对接
  20. TCP延迟应答和捎带应答及“粘包问题“和TCP异常

热门文章

  1. UE4材质初探(转载)
  2. uniCloud 云函数
  3. 苹果cms重名视频怎么合并
  4. 互联网医院源码|互联网医院软件体现智慧医疗的优势
  5. .net 5+ 知新:【2】 .Net Framework 、.Net 、 .NET Standard的概念与区别
  6. 挺带劲!通过 Nginx 来实现封杀恶意访问
  7. 升级计算机的图形卡和驱动程序,电脑显卡驱动程序需要随时更新到最新版本吗?...
  8. 电动车锂电池行业前景广阔,啰马锂服帮助企业、门店“降本增效”
  9. AcWing 1017. 怪盗基德的滑翔翼
  10. 【Mathematica】三种画爱心的方法