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
Kotlin默认参数仅在末尾起作用_Kotlin_Named Parameters_Default Parameters - Fatal编程技术网

Kotlin默认参数仅在末尾起作用

Kotlin默认参数仅在末尾起作用,kotlin,named-parameters,default-parameters,Kotlin,Named Parameters,Default Parameters,我希望我的一些函数参数是可选的,所以我使用默认参数如下: fun defaultparameter(param1: String = "", param2: String = "", param3: Int = 0) 这项工作我可以做到: defaultparameter() defaultparameter("titi") defaultparameter("titi", "tata") 我

我希望我的一些函数参数是可选的,所以我使用默认参数如下:

fun defaultparameter(param1: String = "", param2: String = "", param3: Int = 0)
这项工作我可以做到:

defaultparameter()
defaultparameter("titi")
defaultparameter("titi", "tata")
我可以这样做,因为默认参数在末尾,但当我的参数在中间时:
defaultparameter(“titi”,0)
这不起作用,它要求我提供
param2

我猜编译器只能在结尾有参数时省略参数,但这正常吗?我知道,当参数是同一类型时,编译器无法知道哪个是哪个,但在这里,我在末尾有一个类型
Int
,所以我认为它可以工作


我的问题是:默认参数只在最后起作用?还是我遗漏了什么?有没有办法在不使用多态性和只使用两个参数声明其他函数的情况下实现这一点:一个
String
和一个
Int

您可以使用关键字参数:

defaultparameter(“titi”,参数3=2)
根据Kotlin文件:

在函数调用中使用命名参数时,可以自由更改它们的列出顺序,如果要使用它们的默认值,可以完全忽略它们

即按如下方式调用该方法

defaultparameter(param1 = "titi", param3 = 0)

谢谢,它工作得很好谢谢我不知道命名参数的概念