1 use v6; 2 #如果参数是可选的, 可以在后面加个?后定义 3 sub Choo($x, $y?){ 4 say $x+$y; 5 } 6 Choo(1); 7 Choo(1,2); 8 #具名参数, 也就是字典形式的调用 9 sub Dit(:name($n), :age($a)){ 10 say $n,‘ is ‘, $a; 11 } 12 Dit(name => ‘root‘, age => ‘360‘); 13 Dit(age=>‘php‘, name=>‘localhost‘); 14 Dit(:name(‘li‘), :age(20)); 15 #具名参数, 在定义时, 可可以这样 16 sub Dit2(:$name, :$age){ 17 say $name,‘|‘, $age; 18 } 19 #还可以这样调用, 当没带值时, 只加:时, 默认为Treu, 加:!时, 默认为False 20 Dit2(:name, :!age); 21 22 #如果不知道有多少个参数, 要收集所有参数, 可以用一个*放在变量前收集 23 #这个*表示收集, 后面的@all还是表示一个数组(注意) 24 sub All($user, *@all){ 25 say $user; 26 say @all; 27 } 28 All(1,2,3,4,5); 29 #还可以这样收集 30 sub All2($user, *%all){ 31 say $user; 32 say %all.kv; 33 } 34 All2(1,a=>1,b=>2); 35 All2(1,:a(2), :b, :!c); 36 37 38 39 sub Arr($a, @a, %a){ 40 say $a; 41 say @a; 42 say %a.kv; 43 } 44 my $a=1; 45 my @a=1; 46 my %a=(:a); 47 Arr($a, @a, %a);
时间: 2024-11-08 21:57:24