¿Cuál es la forma correcta de usar una comparación "mayor que" o "menor que" en integers nulables en Kotlin?

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

Esto todavía me da un error de compilation de security nulo, pero ¿cómo puedo usar>, <,> = o <= en este asunto?

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

La otra solución sería usar delegates:

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

Entonces, si intentas envejecer o verificar que Adulto antes de que se le asignara edad, entonces obtendrás una exception en lugar de nulo

De todos modos, creo que la edad = 0 es algún tipo de magia que un día puede dar lugar a un problema (incluso problema prod)

¿Utilicé el operador nulo coalescente para convertir de Nullable Int? a Int no anulable:

 var age: Int? = 0 public var isAdult: Boolean? = null get() = if(age == null) null else (age ?: 0 >= 18) 
  • Android - IllegalStateException: cursor.getString (idx) no debe ser nulo
  • Cómo implementar en jna una estructura sizeof () con un tipo de unión
  • ¿Cómo puedo indicar explícitamente la finalización de un Flowable en RxJava?
  • Kotlin mutableMap.put devuelve nullable
  • ¿Por qué Kotlin no necesita probar y atrapar explícitamente
  • Android Spinner getDropDownView repite elementos después de la selección
  • Comparando las lists de comparables en Kotlin
  • kotlin jvmname ignorado por Gradle?
  • Traducir de Java a Kotlin OnClickListener
  • ¿Cómo agregar una biblioteca de código fuente a IntelliJ (por ejemplo, de Github)?
  • Soporte de transición de fragment 25.1.0 con Recyclerview