kotlin - 如何在 Kotlin 中设置自定义返回类型可为空

标签 kotlin null nullable custom-data-type

我做了一个个人数据类型“email” 我怎样才能使这种类型的值可以为空。

例如。

private lateinit var a: email?

fun makeEmailAddress(a: String): email? {
   // TODO
}

最佳答案

lateinit var 在后台使用 null 来表示未初始化的值,因此从程序的角度来看,它们不能是可为 null 的类型。也就是说,这个限制通常不是问题,因为大多数时候使用 lateinit var 的目的是让您可以在延迟初始化的同时使用非空类型。

如果你需要一个可为空的属性,你可以简单地删除 lateinit 修饰符并在声明它时将其初始化为 null:

private var a: Email? = null

对于函数声明,返回类型 Email? 应该可以正常工作:

fun makeEmailAddress(a: String): Email? {
   // return whatever you need here, either null or an Email instance
}

请注意,按照惯例,Kotlin 中的类型都是大写的,因此我建议您将 email 重命名为 Email(我在上面的示例代码中使用了大写版本)。

关于kotlin - 如何在 Kotlin 中设置自定义返回类型可为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70187167/

相关文章:

java.lang.IllegalStateException : android.accessibilityservice.AccessibilityService.getSystemService(AccessibilityService.java:1602)

kotlin - 如何使用 Kotlin 查找字符串是否为数字?

c++ - 空格与空字符

c# - 是否可以使用条件运算符为可空值赋值?

types - Kotlin 可以在类文件中发出 JSR-305 注释吗

kotlin - Mockito 可以用来匹配 Kotlin 中的函数参数吗?

kotlin - 将 `if...else null` 写为 ?./的一部分的惯用 Kotlin 方式是什么? : chains?

sql - 为什么 Oracle 9i 将空字符串视为 NULL?

MYSQL:IF语句查找n行中的空列

c# - 在类型 Nullable<Int32> 和 Int32 之间未定义 Equal