7.6.5. ジェネリック関数とメソッドのキーワード引数

UP


7.6.5. ジェネリック関数とメソッドのキーワード引数

ジェネリック関数かそのメソッドがラムダリストに&keyを指定しているとき、 ジェネリック関数によって受け取れるキーワード引数の集合の定義は、 適用可能なメソッドによって変化します。 ある呼び出しにおいてジェネリック関数が受け取れるキーワード引数の集合とは、 適用可能な全てのメソッドによって受け取ることができるキーワード引数と、 ジェネリック関数に&keyがあるならば&key以降に示されるキーワード引数の集合です。 &keyの指定が無く、&restの指定があるメソッドは、 受け付けるキーワード引数の集合には影響しません。 もし適用可能なメソッドのどれかのラムダリストか、 あるいはジェネリック関数の宣言によるラムダリストが&allow-other-keysを含んでいる場合は、 そのジェネリック関数は全てのキーワード引数を受け取ります。

ラムダリスト一致の規則は、 各メソッドが次のような全てのキーワード引数を受け付けるようにすることを要求します。 それは、ジェネリック関数の定義において&keyの後に指定したものを明に受け取れるようにするか、 &allow-other-keysを指定するか、あるいは&keyが無い場合に&restを設定するかになります。 各メソッドは、ジェネリック関数の定義にあるキーワード引数に加えて、 独自のキーワード引数を追加で受け取るようにすることができます。

もしジェネリック関数は、渡されたキーワード引数がどの適用メソッドにも受け付けられなかった場合は、 エラーを発する必要があります。3.5. 関数呼び出しのエラーチェックを参照。


TOP, Github