假设一个 kotlin 函数是这样的:
fun f(p1: T1? = null, p2: T2? = null, ..., pN: TN? = null) {
// ...
}
上述函数的实现能否区分以下两个调用,其中第一个通过
p1 = null
隐含地,而第二个显式地传递了它?f() // Implicit
f(null) // Explicit
f(p1 = null) // Explicit
注意:可以有任意数量的参数
最佳答案
不,它无法区分这些情况。
但是,如果添加了不同的重载,则可以区分它们。
关于kotlin - 有没有办法区分在 Kotlin 中显式或隐式传递的函数参数的默认值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61761668/