varargs をパラメーターとして受け入れるクラスを作成し、そのデフォルトを指定して、ユーザーがパラメーターを指定せずにインスタンス化できるようにします。
class MyClass(values: Int* = 42) { }
ただし、コンパイラと REPL で次のエラーが表示されます。
<console>:7: error: type mismatch;
found : Int(42)
required: Int*
class MyClass(values: Int* = 42) { }
^
<console>:7: error: a parameter section with a `*'-parameter is not allowed to have default arguments
class MyClass(values: Int* = 42) { }
回避策として、次のことを試しましたが、どちらも機能しませんでした: (明らかに非常にあいまいです。)
class MyClass(value: Int = 42, otherValues: Int*) { }
varargs パラメータのデフォルトを許可しないのはなぜだろうか。ここに横たわっている推論または技術的な理由は何ですか? (私の推測では、空の varargs を指定するには特別な構文またはイディオムが必要になると思いますが、これが十分な理由かどうかはわかりません。)