如何重用签名?
How to reuse a signature?
是否可以为一个变量分配一个签名,然后在不同的 functions/methods 中重用它?
我找到了 my $sig = :($a, $b);
,但我不知道如何将变量用作函数中的签名。
一种方式:
my $sig = :( $a, $b );
sub foo ( &function where { .signature ~~ $sig } ) {}
sub bar ( $p, $q ) {}
sub qux ( $waldo ) {}
foo &bar;
say "OK at line 10"; # OK at line 10
foo &qux; # Constraint type check failed ... line 12".
是否可以为一个变量分配一个签名,然后在不同的 functions/methods 中重用它?
我找到了 my $sig = :($a, $b);
,但我不知道如何将变量用作函数中的签名。
一种方式:
my $sig = :( $a, $b );
sub foo ( &function where { .signature ~~ $sig } ) {}
sub bar ( $p, $q ) {}
sub qux ( $waldo ) {}
foo &bar;
say "OK at line 10"; # OK at line 10
foo &qux; # Constraint type check failed ... line 12".