Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Parameters 当一个函数需要两个参数时,如何只将一个参数传递给它?_Parameters_Kotlin - Fatal编程技术网

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) {};