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