尽管如此,在所有路径上都没有返回的自定义 getter 仍然可以编译

2024-03-16

我写了这段代码:

var test: String? = null
    get() {
        field?.also {
            return "has value"
        }
    }

它达到return仅当字段非空时。否则身体就完成了。尽管如此,这编译得很好并返回null如果字段为空。

如果我改成这样:

var test: String? = null
    get() {
        if (field != null)
            return "has value"
    }

现在编译器抱怨块体需要一个 return 语句。

这是一些未记录的功能还是错误?


这确实是a bug https://youtrack.jetbrains.com/issue/KT-28061,计划于 1.3.20 修复。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

尽管如此,在所有路径上都没有返回的自定义 getter 仍然可以编译 的相关文章

随机推荐