multi-invocant — 파라미터가 멀티 디스패치에 영향을 주는지 알기

multi-invocant — 파라미터가 멀티 디스패치에 영향을 주는지 알기

시그니처를 정의할 때 ;로 구분된 부분은 인자별로 디스패치에 미치는 영향이 달라져요. 그중 'invocant'(호출 주체)로 취급되는 파라미터는 멀티 디스패치를 결정하는 데 관여해요. multi-invocant는 어떤 파라미터가 그런 역할을 하는지 Bool로 알려줘요.

출처: Raku 공식 문서 — multi-invocant

본문

In Parameter

method multi-invocant(Parameter:D: --> Bool:D)

해당 파라미터가 멀티 디스패치에 영향을 주면 True를 돌려줘요. 예시를 보면 ;의 역할이 바로 보여요.

my Signature $sig = :($a;; $b);
say $sig.params[0].multi-invocant;                 # OUTPUT: «True␤»
say $sig.params[1].multi-invocant;                 # OUTPUT: «False␤»

시그니처 ($a;; $b)에서 $a는 멀티 디스패치를 결정하는 invocant라서 True가 나오고, 세미콜론 뒤에 있는 $b는 디스패치에 영향을 주지 않는 파라미터라서 False가 나와요.