$B1sF#$G$9!#(B
redmine $B$N(B 2.0 tracker $B$K%A%1%C%H$rEPO?$7$?$N$G$9$,!"%a!<%k$,(B
$BN.$l$J$$$h$&$G$9!#%Q%C%A$O%A%1%C%H$r8+$F$/[email protected]$5$$!#(B
http://redmine.ruby-lang.org/issues/5454
$B%-!<%o!<%I0z?t$r<BAu$7$F$_$^$7$?!#(B
$ cat t.rb
def foo(str: “foo”, num: 424242)
p [str, num]
end
foo(str: “bar”)
$ ./ruby t.rb
[“bar”, 424242]
$B:Y$+$$$3$H$O$^[email protected]$$K$7$F$$$^$;$s$,!"%-!<%o!<%I0z?t$,(B 2.0 $B$KF~$k(B
$B$3$H$O$+$J$j3NDjE*$J$N$G!"$H$j$"$($:(B trunk $B$KF~$l$F9M$($k$H$$$&(B
$B$N$O$I$&$G$7$g$&$+!#(B
$B0l1~;d$N4D6-$G$O(B make check $B$ODL$j$^$9(B
($B%-!<%o!<%I0z?t$N%F%9%H(B
$B$O=q$$$F$J$$$G$9$,(B) $B!#%Q!<%5$K(B conflict $B$O$J$$$G$9!#(B
$B4{B8$N%Y%s%A%^!<%/$r8+$k$H!“0lIt5$$K$J$k9`L$b$”$j$^$9$,(B (vm1_
rescue $B$H$+(B) $B!"A4BNE*$K$OFC$KB.EYNt2=$7$J$$$h$&$G$9!#(B
$B0J2<$OL$<BAu!&7|0F$G$9!#(B
-
$B;D$j$N%-!<%o!<%I0z?t$r<u$1<h$kJ}K!$,I,MW$+(B
def foo(str: “foo”, num: 424242, **h)
p h
end
foo(str: “bar”, check: true) #=> { :check => true } -
nil $B$,EO$5$l$?$i$d$O$j(B nil $B$K$J$k$Y$-!)(B
def foo(str: “foo”)
p str
end
foo(str: nil) #=> nil ? ($B:#$O<jH4$-$G(B “foo”) -
rest $B$J$7$GCN$i$J$$%-!<%o!<%I$,Mh$?$iNc30!&7Y9p$rH/$7$F(B
$BM_$7$$!)(Bdef foo(str: “foo”, num: 424242)
end
foo(check: true) #=> ArgumentError? -
Hash $B$N$h$&$K?6$kIq$&%*%V%8%’%/%H$b%-!<%o!<%I0z?t$H$7$F(B
$B2r<a$9$Y$-!)(B ($B8=:_$OB.EY=E;k$G(B T_HASH [email protected]$18+$F$$$k(B) -
$B0z?t$N=gHV$O$h$$$+(B
def foo(
a, b, c, # mandatory arguments
opt = 1, # optional arguments
*rest, # rest argument
x, y, z, # post mandatory arguments
k1: 1, k2:2, # keyword arguments
**kh, # keyword rest argument
&blk # block argument
) -
$BB>$$$m$$$m(B