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?