是否可以声明只返回null
的函数?不幸的是,您无法在返回类型部分中编写null
。返回值应为null
而不是Unit,以便它可以与可空操作符一起使用。
答案 0 :(得分:6)
正如评论中所建议的那样,Nothing?
应该是这种函数的返回类型:
fun alwaysNull(): Nothing? = null
[...]您可能遇到此类型的另一种情况是类型推断。此类型的可空变体
Nothing?
只有一个可能的值,即null
。如果使用null
初始化推断类型的值,并且没有其他信息可用于确定更具体的类型,编译器将推断出Nothing?
类型:val x = null // 'x' has type `Nothing?` val l = listOf(null) // 'l' has type `List<Nothing?>