`arity`

arity (호출에 필요한 최소 인자 수 알아내기)

코드 객체를 호출하려면 최소 몇 개의 위치 인자를 넘겨야 하는지, 그리고 시그니처가 요구하는 최소 인자수가 얼마인지 궁금할 때가 있어요. 특히 인트로스펙션(introspection)을 할 때 유용하죠. 여러 타입에서 arity가 그 답을 정리해 줘요.

출처: Raku Documentation — routine arity

본문

ForeignCode

method arity()

감싸인 코드의 arity를 돌려줘요.

Code

method arity(Code:D: --> Int:D)

코드 객체를 호출하기 위해 반드시 넘겨야 하는 위치 인자의 최소 개수를 돌려줘요. 코드 객체 시그니처의 선택 인자나 slurpy 인자는 개수에 들어가지 않아요. 이름 인자도 마찬가지예요.

sub argless() { }
sub args($a, $b?) { }
sub slurpy($a, $b, *@c) { }
say &argless.arity;             # OUTPUT: «0␤»
say &args.arity;                # OUTPUT: «1␤»
say &slurpy.arity;              # OUTPUT: «2␤»

Format

method arity(--> List:D)

이 포맷에 필요한 위치 인자의 최소 개수를 돌려줘요. 인트로스펙션 용도로 쓰기 위해 만들어졌어요.

use v6.e.PREVIEW;
my $d = Format.new("%05d%3x:%s");
say $d.arity;                   # OUTPUT: «3␤»

Signature

method arity(Signature:D: --> Int:D)

시그니처를 만족시키기 위해 필요한 위치 인자의 최소 개수를 돌려줘요.