Rubyで静的型

$B=i$a$^$7$F!#(B
$B:4!9LZ=SG7$H$$$&$b$N$G$9!#(B

$B$5$C$=$/K\Bj$G$9$,!"(B
$B7GBj$NDL$j!"(BRuby$B$N$h$&$JF0E[email protected]$G!"@EE$J7?%A%’%C%/$r9T$&(B
$BJ}K!$K$D$$$F%"%$%G%"$r;}$C$F$$$^$9!#(B
$B$3$l$O;d$,CN$k8B$j!J$H$$$C$F$bBgJQ69$$HO0O$G$9$,!K$^[email protected]@$$K(B
$B=P$F$$$J$$$h$&$J$N$G$9$,!"$3$l$r;H$&$H%@%C%/%?%$%T%s%0$r4^$a$?(B
$B$9$Y$F$NF0E*$J7?IU$1$r!“[email protected]$N7?;XDj$J$/!”@EE*$K9T$&$3$H$,(B
$B$G$-$^$9!#(B

$B$=$NJ}K!$O<!$G$9!#(B
$B#1!%4X?t$N0z?t$O$9$Y$F([email protected]$&7?%F%s%W%l!<%H$H$9$k!#(B
$B#2!%[email protected]$r9T$&!#(B
$B#3!%%]%j%b!<%U%#%:%`$O!V<+F0HF2=!W$7$F9T$&!#(B

$B<+F0HF2=!"$3$l$,;d$N%"%$%G%"$J$N$G$9$,!"$=$l$O(BC++$B$N2>A[4X?t(B
$B%F!<%V%k$r!"%/%i%9$4$H$G$J$/(B
$B%]%j%b!<%U%#%C%/$K?6Iq$&JQ?t$K$D$$$F$N0lO"$N8F$S=P$7$H!"$=$N(B
$BJQ?t$K<B:]$KF~$l$i$l$k%%V%8%’%/%H$4$H$K:n$j!"<B9T;~!"JQ?t$,$I$N(B
$B%
%V%8%’%/%H$N7?$J$N$+$K$h$C$F!“2>A[4X?t%F!<%V%k$rA*$s$G!”$=$l$K(B
$B$D$$$F%*%V%8%’%/%H$N%a%s%P!<$r8F$S=P$9$H$$$&$b$N$G$9!#(B

[email protected]$HJ,$+$j$K$/$$$H;W$$$^$9$,!“MW$OJQ?t$KF~$l$i$l$?!“F1$8%$%s%?!<(B
$B%U%’!<%9$rItJ,E*$K;}$D%*%V%8%’%/%H$N4X?t%F!<%V%k$N!”%a%b%j!<%^%C%T%s%0(B
$B$N:90[$r5[<}$9$k2>A[4X?t%F!<%V%k$r!”$=$NJQ?t$N$9$Y$F$N%]%j%b!<%U%#(B
$B%C%/$J8F$S=P$7$K$D$$$F!":n$k$H$$$&(B
$B$3$H$G$9!#$3$N2>A[4X?t%F!<%V%k$r!"(BC++$B$N$=$l$H6hJL$9$k$?$a!"0J2<$G$O(B
$B!V%-%c%C%W%F!<%V%k!W$H8F$V$3$H$K$7$^$9!#(B

$B$3$l$G$bJ,$+$j$K$/$$$N$GNc$r!#(B
X$B%%V%8%’%/%H$,%a%s%P!<(Ba, b, c,
d$B$r!"(BY$B%
%V%8%’%/%H$,%a%s%P!<(Bb, c,
d, e$B$r;}$A!"(B

if $BF0E*$J>r7o(B
    var = X
else
    var = Y
end
var.b
var.c

$B$N%3!<%I$,$"$k$H$-!#(B
var$B$O%]%j%b!<%U%#%C%/$K?6Iq$$$^$9!#$=$NGX8e$G$O!"(BX$B$K$D$$$F$N%a%=%C%I(B
b, c$B$N;HMQ!J;[email protected]$+$i(Bd$B$O4^$^$J$$!K$K$D$$$F$N%-%c%C%W%F!<%V%k$,(B
$BB8:_$7!"$=$l$,(Bvar =
x$B$N$H$-(Bvar$B$KBeF~$5$l!"(Bvar.b$B$G%-%c%C%W%F!<%V%k$N(B
$B%a%s%P!<(Bb$B$,(BX$B%%V%8%’%/%H$N%a%s%P!<(Bb$B$r;2>H$7$F!"(BX$B$N(Bb$B$r8F$S=P$7$^$9!#(B
var = y$B$N$H$-$bF1MM$G$9!#(Bvar$B$KF~$k(BX,
Y$B$N%-%c%C%W%F!<%V%k$N%l%$%"%&%H(B
$B!J(Bb, c$B$N=g!K$O(BX,
Y$B6&$KF1$8$G!"[email protected]$+$i$I$A$i$N!J<B9T;~J,$+$i$J$$!K(B
$B%-%c%C%W%F!<%V%[email protected]
$KB+G{$G$-$^$9!#(B
$B%-%c%C%W%F!<%V%k$O$=$l$>$l6&[email protected]$NL5$$(BX, Y$B$N%a%b%j!<%l%$%"%&%H(B
$B!J(Bb, c$B$K$D$$$F$N!K$X$N%]%$%s%?$r$=$N%a%s%P!<$H$7$F;}$A$^$9!#(B
$B$3$&$7$F%@%C%/%?%$%T%s%0$,@EE*7?B+G{$r$b$C$F$G$-$k$h$&$K$J$j$^$9!#(B

$B0J>e$,<[email protected]@$G$9!#:Y$+$$$3$H$O$^[email protected]$"$j$^$9$,!“BgBN$O(B
$B$3$s$J46$8$G$9!#=EMW!J$H;d$,;W$C$F$$$k!K$J$N$O!”$3$l$,7?@k8@$J$/(B
[email protected]7?B+G{$9$k$?$a$KI,MW$J:G8e$NMWAG$H;W$o$l$k$3$H$G$9!#(B
$B$3$l$G(BRuby$B$G$b2?$i%3!<%I$rJQ99$9$k$3$H$J$/@EE
7?B+G{$,2DG=$H(B
$B$J$j$^$9!#([email protected]$+$i!"4hD%$l$P([email protected]$K$J$l(B
$B$k$+$b$7$l$^$;$s!#$=$&$J$k$H:#$^$GB.EY$,=EMW$JItJ,$O(BC$B$G=q$3$&(B
$B$H$$$&$3$H$O$J$/$J$j!"5U$KB.EY$,[email protected]$+$i$3$3$O(BRuby$B$G=q$3$&$H(B
$B$$$&$3$H$K$b$J$k$+$b$7$l$^$;$s!#(B
$B$b$C$H$b%3%s%Q%$%k$H$$$&<j=g$,7y$o$l$l$P$=$l$^$G$G$9$,!#(B

$B0J>e!"[email protected]$h!"$H$$$&$3$H$G$"$l$P?=$7Lu$"$j$^$;$s!#(B
$BD9J8<:Ni$7$^$7$?!#(B


$B:4!9LZ=SG7(B
[email protected]