2016-02-15 9 views
13

私はPerl 6 docs on the shift routineを閲覧し、このスニペットを見た:DとD:の違いは何ですか?

として定義され

multi sub shift(Array:D) 
multi method shift(Array:D:) 

私は:DArraydefinedなくAnyまたはNilですが、:D:は何を意味知っていますか?検索するのは非常に難しいです。

This sectionには、構文の例がたくさん含まれていますが、(私が知る限りは)説明できません。

答えて

11

メソッドのinvocantは暗黙的な第1引数として渡されます。シグネチャ内の明示的なパラメータを使用する場合(たとえば、:Dのようなタイプのスマイリーを追加する場合や、わかりやすい名前を付ける場合など)は、パラメータリストの残りの部分から,の代わりに: 。これは、空のリストの場合でも必要であるため、通常の位置パラメータで署名から曖昧さを除去することができます。

さらに詳しい情報はin the design documentsで確認できます。

関連する問題