当我们像这样用Kotlin创造乐趣的时候
fun foo(bar: Int = 0, baz: Int) { /* ... */ }
foo(baz = 1) // The default value bar = 0 is used
所以在java中我们需要以这种方式编写它 .
不需要写
void foo(int bar, int baz){
...
}
void foo(int baz){
foo(0,baz);
}
让我们想象一下,如果我们有10个参数 . 我想知道Kotlin如何处理这件事 . Kotlin会生成所有可能的方法吗?或者它只是生成程序员真正使用的方法?
3 回答
不会产生2 ^ N次重载 . 如docs所述,
对于具有默认参数的函数,例如,
它会产生过载
来自documentation:
当你有一个带有默认参数的函数时,Kotlin会生成一个合成函数,其中包含所需的参数和一个额外的
Int
作为最后一个参数并进行一些位操作示例Kotlin函数:
编译的Java代码: