Hice un tipo de datos personales "correo electrónico", ¿cómo puedo hacer que este tipo sea anulable en valor?
Por ejemplo.
private lateinit var a: email?o
fun makeEmailAddress(a: String): email? { // TODO }lateinit var usa nulos detrás de escena para representar el valor no inicializado, por lo que no pueden ser de tipos anulables desde el punto de vista del programa. Dicho esto, esta limitación en general no es un problema porque la mayoría de las veces el punto de usar lateinit var es para que pueda usar tipos no nulos mientras aún retrasa la inicialización.
Si necesita una propiedad anulable, simplemente puede soltar el modificador lateinit e inicializarlo en null al declararlo:
private var a: Email? = null Para la declaración de la función, el tipo de retorno Email? debería funcionar:
fun makeEmailAddress(a: String): Email? { // return whatever you need here, either null or an Email instance } Tenga en cuenta que los tipos están en mayúsculas en Kotlin por convención, por lo que le sugiero que cambie el nombre de email a Email (utilicé la versión en mayúsculas en el código de muestra anterior).