在Kotlin中使用“大于”,“小于”比较可空整数的正确方法是什么?
var _age: Int? = 0 public var isAdult: Boolean? = false get() = _age?.compareTo(18) >= 0
这仍然给我一个空安全,编译错误,但我怎么能在这个问题上使用>,<,> =或<=?
var age : Int? = 0 public val isAdult : Boolean? get() = age?.let { it >= 18 }
另一种解决方案是使用代表:
var age : Int by Delegates.notNull() public val isAdult : Boolean get () = age >= 18
所以,如果你尝试哟年龄或检查isAdult实际分配年龄之前,你会得到异常,而不是空
无论如何,我相信年龄= 0是某种神奇,有一天可能会导致问题(甚至刺激问题)
我使用空合并运算符从可空的Int? 不可空的Int:
var age: Int? = 0 public var isAdult: Boolean? = null get() = if(age == null) null else (age ?: 0 >= 18)
- 将源文件附加到kotlin库项目不会显示在AS中
- Kotlin:如何将数组传递给Java注释
- 删除Kotlin中另一个字符串中出现的字符
- 错误:执行任务失败:app:compileDebugKotlinAfterJava'
- 如何组织Kotlin扩展方法
- 如何写while循环与在kotlin中的responseInputStream.read – (while((i = responseInputStream.read(byteContainer))
- Kotlin:运行Hello程序时得到ClassNotFoundException
- 如何将JSON字符串映射到Kotlin Map
- Dokka使用完全合格的类名称