9. 型制約:変数
1 my Int $i = 1;
2 # ok
3
4 my Str $s = 1;
5 # Type check failed in assignment to ’$s ’; expected ’Str ’ but
got ’Int ’
青木大祐 / @VienosNotes (情報科学類) Perl6 で遊ぼう Tsukuba.pm #2 9 / 21
10. 型制約:関数
1 sub f (Int $i) returns Int { return $i * 2; }
2
3 say f(1);
4 #> 2
5
6 say f("piyo")
7 #> CHECK FAILED :
8 #> Calling ’f’ will never work with argument types (str)
9 #> Expected : :( Int $i)
10
11 multi sub g (Int $i) { return $i * 2; }
12 multi sub g (Str $s) { return $s x 2; }
13
14 say g(1);
15 #> 2
16 say g("s");
17 #> ss
青木大祐 / @VienosNotes (情報科学類) Perl6 で遊ぼう Tsukuba.pm #2 10 / 21