Kotlinでは引数を名前つきで呼び出せる。なしでもOK。
fun add(x: Int, y: Int) = x + y
fun f() {
add(1, 2)
add(x=1, y=2)
add(1, y=2)
}
名前付きで呼んでほしいときはどうするか?名前つきにしてほしいところの前にvararg Voidをおく。
fun add(vararg useNamed: Void, x: Int, y: Int) = x + y
fun f() {
// add(1, 2) // コンパイルエラー!
add(x=1, y=2)
// add(1, y=2) // コンパイルエラー!
}
途中からでもOK。
fun add(x: Int, vararg useNamed: Void, y: Int) = x + y
fun f() {
// add(1, 2) // コンパイルエラー!
add(x=1, y=2)
add(1, y=2)
}
…いやいやだめだろこれ。もっといい方法があれば教えて下さい。
参考:How can I force calls to some constructors/functions to use named arguments?