The IdiomsKotlin 官方文档的部分包含这个例子 http://kotlinlang.org/docs/reference/idioms.html#builder-style-usage-of-methods-that-return-unit:
返回 Unit 的方法的构建器风格用法
fun arrayOfMinusOnes(size: Int): IntArray {
return IntArray(size).apply { fill(-1) }
}
作为函数apply
返回泛型类型,我想Unit
是一样的void
在Java中,本节建议我们可以在构建器风格中使用void方法?这对我来说没有意义——它想说什么?
它试图说明的一点是,如果您只是使用传统的 Java 构建器风格,如下所示:
return IntArray(size)
.fill(-1)
那么它就不会编译,因为它是类型Unit
, not IntArray
。
所以传统上,你必须做这样的事情:
val ret = IntArray(size)
ret.fill(-1)
return ret
apply
使您能够避免这种情况,因为返回类型仍然是类型IntArray
(or T
, 一般来说)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)