kotlin - 如何实现原始类型的lateinit效果?
问题描述
我读过为什么 Kotlin 不允许将 lateinit 与原始类型一起使用?.
但是,使用 有一个好处lateinit
,即如果错误是由于没有初始化引起的,可以从错误信息中立即知道。但是对于不能使用的原始类型lateinit
,比如Int,用户必须赋值0。但是如果合适的值应该是一个远大于0的值,必须稍后确定,然后,用户忘记了init 值,后来程序产生了错误,有什么办法可以让看到错误信息的用户立即意识到错误不是其他原因造成的呢?
多谢。
并且lateinit var v:Int? = null
非常糟糕,这使得操作v--
变得非常复杂。
解决方案
您链接的答案解释了为什么在技术上不可能支持原始类型的 lateinit 。因此,即使拥有它们有好处,那么……好吧,见上文,这在技术上是不可能的。
您可以使用属性委托来获得非常相似的效果:
var v by Delegates.notNull<Int>()
推荐阅读
- odoo - Odoo - 如何在菜单栏中隐藏对话图标
- javascript - 使用three.js FirstPersonControls时补间相机旋转动画在完成时跳转
- mysql - 如何获取mysql中所有用户的当前连续和最长连续
- asp.net - 如何在 ASP.NET Core 中为多个角色定义多个默认路由?
- android - 回购同步挂在 97%
- python - 为每个 id 生成自定义倒数并使用现有的 - Python 填充
- javascript - 寻找 JavaScript 数组插入方法
- google-cloud-platform - 使用 GCP_KMS 和 BYOK 解决方案管理密钥轮换
- jsp - 在输入中写入内容时显示相似或相同的结果
- tableau-api - Tableau 使用 FIXED 汇总聚合数据