¿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) 
  • Implementación de una anotación de Java en Kotlin
  • ¿Cómo se transfiere el valor de db en Kotlin?
  • Solo se permiten llamadas seguras (?.) O no afirmadas (n.) En un receptor anulable.
  • ¿Cómo declaras un campo polimórfico que usa JsonTypeInfo.As.WRAPPER_OBJECT con Jackson XML?
  • No se puede resolver el host pokeAPI
  • Kotlin utiliza aserciones de time de ejecución para la comprobación nula - ¿Sobrecarga de performance?
  • Verificar si la function es extensión
  • ¿En qué situación val / var es necesaria en el parámetro constructor de Kotlin?
  • ¿Es esta la manera correcta de lanzar
  • ¿Cómo simplificar múltiples controles de igual a igual en las condiciones?
  • Actualizando para admitir 27 y SDK 27 de 25, locking en Android 4.4 ahora