perl6中函数参数(2)

 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);

 

posted on 2017-05-27 02:48  Perl6  阅读(395)  评论(0编辑  收藏  举报

导航