Parameters 当一个函数需要两个参数时,如何只将一个参数传递给它?
我在类中创建了上述方法。以下方法调用是一个正常工作的方法:Parameters 当一个函数需要两个参数时,如何只将一个参数传递给它?,parameters,kotlin,Parameters,Kotlin,我在类中创建了上述方法。以下方法调用是一个正常工作的方法: fun multipleParams(id: Int = 1 , name: String) { ... } 是否有可能以某种方式使用它,有时我只传递name,有时两者都传递 multipleParams(1,"Rose") 您就快到了--您只需要利用它们,因为您已经将它们命名为: multipleParams(1,"Rose") multipleParams("Rose") 这将对id使用默认值1,因为它未被传递,而对名称使
fun multipleParams(id: Int = 1 , name: String) {
...
}
是否有可能以某种方式使用它,有时我只传递name
,有时两者都传递
multipleParams(1,"Rose")
您就快到了--您只需要利用它们,因为您已经将它们命名为:
multipleParams(1,"Rose")
multipleParams("Rose")
这将对
id
使用默认值1
,因为它未被传递,而对名称使用“Rose”
。这里不能简单地使用位置参数,因为您没有提供第一个参数,所以请使用您提供的名称。我想补充一下@Andrew Li的答案
您只需更改参数的顺序即可实现这一点
multipleParams(name = "Rose")
现在可以按以下方式调用函数:
fun multipleParams(name: String, id: Int = 1) {
...
}
注意:默认参数最好在函数参数的末尾。那么您就不需要使用命名参数。我想补充@chandil03的答案
“默认参数应位于函数参数的末尾”,但参数除外,如果要使用,例如:
multipleParams("Rose", 1)
multipleParams("Rose")
fun multipleParams(name: String, id: Int = 1, block: () -> Unit) {
...
}
multipleParams("Rose") {};
multipleParams("Rose", 1) {};