kotlin - 在 Kotlin 中对可空整数使用 "greater than"、 "less t

var _age: Int? = 0

public var isAdult: Boolean? = false
   get() = _age?.compareTo(18) >= 0 

这仍然给我一个 null-safety,编译错误,但是在这件事上我该如何使用 >、= 或

最佳答案

var age : Int? = 0

public val isAdult : Boolean?
    get() = age?.let { it >= 18 }

另一种解决方案是使用委托(delegate):

var age : Int by Delegates.notNull()
public val isAdult : Boolean
    get () = age >= 18

因此,如果您在实际分配年龄之前尝试获取年龄或检查 isAdult,那么您将得到异常而不是 null。

无论如何,我相信年龄 = 0 是某种魔法,有一天可能会导致问题(甚至是刺激问题)。

关于kotlin - 在 Kotlin 中对可空整数使用 "greater than"、 "less than"比较的正确方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29223898/

相关文章:

android - 应用程序模块中引用的 android 库模块的“ Unresolved 引用”错

java - 错误 :Kotlin: Unsupported plugin option: org.

android - 如何混淆我用 kotlin 编码的 sdk(并摆脱元数据)

android - kotlin 'onCreate' 不会覆盖任何内容

android - 为全屏 Activity 摆脱不必要的根布局

javafx - Kotlin 。基本 JavaFX 应用程序

spring - kotlin 和 @Valid Spring 注解

android - Kotlin 属性访问语法如何适用于 Java 类(即 EditText set

android - 延迟对 Kotlin 协程进行单元测试

android - 如何在 kotlin 协程上进行指数退避重试