
|
$BA0(B
-
$B
-
$BL\
Ruby$B$NJ8K!(B
Ruby$B$N8=:_$N.J8;z$O6hJL$5$l$^$9!%<1JL;R$H0lIt$N%j%F(B
$B%i%k$NESCf$r=|$$$F$OG$0U$N>l=j$K6uGrJ8;z$d%3%a%s%H$rCV$/$3$H(B
$B$,$G$-$^$9!%6uGrJ8;z$H$O%9%Z!<%9!$%?%V!$?bD>%?%V!$%P%C%/%9%Z!<(B
$B%9!$%-%c%j%C%8%j%?!<%s!$2~%Z!<%8$G$9!%2~9T$O9T$,L@$i$+$K
$BNc(B:
foobar
ruby_is_simple
Ruby$B$N<1JL;R$O1QJ8;z$^$?$O%"%s%@!<%9%3%"(B('_' )$B$+(B
$B$i;O$^$j!$1QJ8;z!$%"%s%@!<%9%3%"(B('_' )$B$^$?$O?t;z(B
$B$+$i$J$j$^$9!%<1JL;R$ND9$5$K@)8B$O$"$j$^$;$s!%(B
$BNc(B:
# this is a comment line
$B%9%/%j%W%H8@8l$N=,47$K$J$i$$!$J8;zNsCf$d?tCM%j%F%i%k(B
(?# )$B0J30$N(B# $B$+$i9TKv$^$G$r%3%a%s%H(B
$B$H8+$J$7$^$9!%(B
$BNc(B:
=begin
the everything between a line beginning with `=begin' and
that with `=end' will be skipped by the interpreter.
=end
Ruby$B$N%=!<%9%3!<%I$K%I%-%e%a%s%H$rKd$a9~$`;v$,$G$-$^$9!%J8$,(B
$B;O$^$kItJ,$N9TF,$K(B=begin $B$,$"$k$H!$$=$3$+$i$O$8(B
$B$^$C$F!$(B=end $B$G;O$^$k9T$^$G$OKd$a9~$_%I%-%e%a%s(B
$B%H$H$7$FFI$_Ht$P$5$l$^$9!%(B
$BM=Ls8l$O0J2<$K$"$2$k$b$N$G$9(B:
BEGIN class ensure nil self when
END def false not super while
alias defined for or then yield
and do if redo true
begin else in rescue undef
break elsif module retry unless
case end next return until
$BM=Ls8l$O%/%i%9L>!$JQ?tL>$J$I$KMQ$$$k$3$H$O$G$-$^$;$s!%$7$+$7!$(B
`$', `@'$B$,@hF,$K$D$$$?$b$N$OM=Ls8l(B
$B$H8+$J$5$l$^$;$s!%L@<(E*$K%a%=%C%IL>$G$"$k$HJ,$+$k>l9g$K$O%a(B
$B%=%C%IL>$H$7$FMQ$$$k$3$H$,$G$-$^$9!%(B
$BNc(B:
print "hello world!\n"
$B%W%m%0%i%`$O<0$rJB$Y$?$b$N$G$9!%<0$H<0$N4V$O%;%_%3%m%s(B
(; )$B$^$?$O2~9T$G6h@Z$i$l$^$9!%$?$@$7!$%P%C%/%9%i%C(B
$B%7%e$KB3$/2~9T$OJ8$N6h@Z$j$K$J$i$:!$
$BNc(B:
true
(1+2)*3
foo()
if test then ok else ng end
$B<0$O3g8L$K$h$C$F%0%k!<%T%s%0$9$k$3$H$,$G$-$^$9!%(B
$BNc(B:
"this is a string expression\n"
"concat#{foobar}"
'concat#{foobar}'
%q!I said, "You said, 'She said it.'"!
%!I said, "You said, 'She said it.'"!
%Q('This is it.'\n)
$BJ8;zNs$O%@%V%k%/%)!<%H$^$?$O%7%s%0%k%/%)!<%H$G0O$^$l$F$$$^$9!%(B
$B%@%V%k%/%)!<%H$G0O$^$l$?J8;zNs$G$O%P%C%/%9%i%C%7%e$K$h$k%(%9(B
$B%1!<%W$H<0E83+(B($B8e=R(B)$B$,M-8z$K$J$j$^$9!%%7%s%0%k%/%)!<%H$G0O$^(B
$B$l$?J8;zNs$G$O!$(B\\ ($B%P%C%/%9%i%C%7%e$=$N$b$N(B)$B$H(B
\' ($B%7%s%0%k%/%)!<%H(B)$B$r=|$$$FJ8;zNs$NCf?H$N2r
% $B$G;O$^$k7A<0$NJ8;zNs$rMQ$$$k$3$H$G%P%C%/%9%i%C(B
$B%7%e$N?t$r8:$i$9$3$H$,$G$-$^$9!%(B
%q!STRING! $B$O%7%s%0%k%/%)!<%HJ8;zNs!$(B
%Q!STRING! ($B$^$?$O(B
%!STRING!)$B$O%@%V%k%/%)!<%HJ8;zNs$HF1$8E83+$r9T$$$^$9!%(B
! $B$NItJ,$K$O2~9T$r4^$a$?G$0U$NHs1Q?t;z$r(B
$B;H$&$3$H$,$G$-$^$9!%;O$^$j$N6h@Z$jJ8;z$,3g8L(B
(`(',`[',`{',`<')$B$G$"$k;~$K$O!$=*$j$N6h@Z$jJ8;z$OBP1~$9$k3g8L$K$J$j$^$9!%(B
$B%P%C%/%9%i%C%7%e5-K!(B
- \t
-
$B%?%V(B(0x09)
- \n
-
$B2~9T(B(0x0a)
- \r
-
$B%-%c%j%C%8%j%?!<%s(B(0x0d)
- \f
-
$B2~%Z!<%8(B(0x0c)
- \b
-
$B%P%C%/%9%Z!<%9(B(0x08)
- \a
-
$B%Y%k(B(0x07)
- \e
-
$B%(%9%1!<%W(B(0x1b)
- \s
-
$B6uGr(B(0x20)
- \nnn
-
8$B?J?tI=5-(B(n$B$O(B0-7)
- \xnn
-
16$B?J?tI=5-(B(n$B$O(B0-9,a-f)
- \cx
-
- \C-x
-
$B%3%s%H%m!<%kJ8;z(B(x$B$O(BASCII$BJ8;z(B)
- \M-x
-
$B%a%?(B x (c | 0x80)
- \M-\C-x
-
$B%a%?(B $B%3%s%H%m!<%k(B x
- \x
-
$BJ8;z(Bx$B$=$N$b$N(B
$BJ8;zNs<0$OI>2A$5$l$k$?$S$KKh2s?7$7$$J8;zNs%*%V%8%'%/%H$r@8@.(B
$B$7$^$9!%(B
$BNc(B:
`date`
%x{ date }
$B%P%C%/%/%)!<%H(B(` )$B$G0O$^$l$?J8;zNs$O!$%@%V%k%/%)!<(B
$B%H$G0O$^$l$?J8;zNs$HF1MM$K%P%C%/%9%i%C%7%e5-K!$N2r2A$5$l$k$?$S$K
%x/STRING/$B7A<0$O%3%^%s%I=PNO<0$NJL$N7A<0$G$9!%(B
$BNc(B:
/^Ruby the OOPL/
/Ruby/i
/my name is #{myname}/o
/ $B$G0O$^$l$?J8;zNs$O@55,I=8=$G$9!%(B
$B=*$j$N(B/ $B$ND>8e$NJ8;z$O@55,I=8=$KBP$9$k%*%W%7%g%s$K$J$j$^$9!%(B
$B%*%W%7%g%s$N5!G=$O0J2<$NDL$j$G$9!%(B
-
i
-
$B@55,I=8=$O%^%C%A;~$KBgJ8;z>.J8;z$N6hJL$r9T$o$J$$(B
-
o
-
$B0lHV:G=i$K@55,I=8=$NI>2A$,9T$o$l$?;~$K(B
$B0lEY$@$1(B$B<0E83+(B$B$r9T$&(B
- x
-
$B@55,I=8=Cf$N6uGr$rL5;k$9$k!%%3%a%s%H$bIU$1$i$l$k(B
-
p
-
POSIX$B%b!<%I!%2~9T$bDL>oJ8;z$H8+$J$9(B
Ruby$B$OF|K\8l2=$5$l$F$$$k$N$G!$>e5-$N%*%W%7%g%s$NB>$K(B
n, e,s$B$N%*%W%7%g%s$,;XDj$G$-$^$9!%(B
$B$3$l$i$O(B$KCODE $B$NCM$K$+$+$o$i$:!$(B
$B@55,I=8=$,%^%C%A$K;HMQ$9$kJ8;z%3!<%I$r;XDj$9$k$b$N$G$9!%(B
%r/STRING/$B7A<0$O@55,I=8=<0$NJL$N7A<0$G$9!%(B
^
-
$B9TF,(B
$
-
$B9TKv(B
.
-
$B2~9T$r=|$/G$0U$N(B1$BJ8;z(B
\w
-
$B1Q?t;z!%(B[0-9A-Za-z_]$B$HF1$8(B
$BF|K\8l$N$$$o$f$kA43QJ8;z$b4^$`(B
\W
-
$BHs1Q?t;z(B
\s
-
$B6uGrJ8;z!%(B[ \t\n\r\f]$B$HF1$8(B
\S
-
$BHs6uGrJ8;z(B
\d
-
$B?t;z!%(B[0-9] $B$HF1$8(B
\D
-
$BHs?t;z(B
\A
-
$BJ8;zNs@hF,(B
\Z
-
$BJ8;zNsKvHx(B($B2~9T$,$"$l$P2~9T$ND>A0(B)
\z
-
$BJ8;zNsKvHx(B
\b
-
$B8l6-3&(B($BJ8;z%/%i%930(B)
\B
-
$BHs8l6-3&(B
\b
-
$B%P%C%/%9%Z!<%9(B(0x08)([]$BFb(B)
[ ]
-
$BJ8;z%/%i%9;XDj(B
*
-
$BD>A0$NI=8=$N(B0$B2s0J>e$N7+$jJV$7(B
*?
-
$BD>A0$NI=8=$N(B0$B2s0J>e$N7+$jJV$7(B($B:GC;0lCW(B)
+
-
$BD>A0$NI=8=$N(B1$B2s0J>e$N7+$jJV$7(B
+?
-
$BD>A0$NI=8=$N(B1$B2s0J>e$N7+$jJV$7(B($B:GC;0lCW(B)
{m,n}
-
$BD>A0$NI=8=$N(Bm$B2s$+$i(Bn$B2s$N7+$jJV$7(B
{m,n}?
-
$BD>A0$NI=8=$N(Bm$B2s$+$i(Bn$B2s$N7+$jJV$7(B($B:GC;0lCW(B)
?
-
0$B$^$?$O(B1$B2s$ND>A0$NI=8=(B
|
-
$BA*Br(B
( )
-
$B@55,I=8=$r%0%k!<%W2=(B
(?# )
-
$B%3%a%s%H(B
(?: )
-
$B8eJ};2>H$rH<$o$J$$%0%k!<%W2=(B
(?= )
-
$B%Q%?!<%s$K$h$k0LCV;XDj(B($BI}$r;}$?$J$$(B)
(?! )
-
$B%Q%?!<%s$NH]Dj$K$h$k0LCV;XDj(B($BI}$r;}$?$J$$(B)
(?ixp-ixp)
-
$B@55,I=8=Cf$G$N(Bi$B%*%W%7%g%s!$(Bx$B%*%W%7%g%s!$(Bp$B%*%W%7%g%s$N(Bon/off$B!%3g8L$NHO0OFb$G@_Dj(B
(?ixp-ixp: )
-
$B3g8LFb$N(Bi$B%*%W%7%g%s!$(Bx$B%*%W%7%g%s!$(Bp$B%*%W%7%g%s$N(Bon/off$B!%(B
$B@55,I=8=$NCf$G$OJ8;zNs$HF1$8%P%C%/%9%i%C%7%e5-K!$d<0E83+$b(B
$BM-8z$G$9!%(B
$BNc(B:
"my name is #{$ruby}"
$B%@%V%k%/%)!<%H(B(" )$B$G0O$^$l$?J8;zNs<0!$%3%^%s%IJ8(B
$B;zNs$*$h$S@55,I=8=!$$NCf$G$O(B#{$B<0(B} $B$H$$$&7A<0$G<0(B
$B$NFbMF(B($B$rJ8;zNs2=$7$?$b$N(B)$B$rKd$a9~$`$3$H$,$G$-$^$9!%<0$,JQ?t(B
$B5-9f(B($ ,@ )$B$G;O$^$kJQ?t$N>l9g$K$O(B
{} $B$r>JN,$7$F!$(B#$BJQ?tL>(B $B$H$$$&7A<0$G(B
$B$bE83+$G$-$^$9!%J8;z(B# $B$KB3$/J8;z$,(B
{ ,$ ,@ $B$G$J$1$l$P!$$=$N(B
$B$^$^J8;z(B# $B$H$7$F2r#$B$NA0$K%P%C%/%9%i%C%7%e$rCV$-$^$9!%(B
$B%7%'%k$N$h$&$J9T;X8~$NJ8;zNs%j%F%i%k$NI=8=$b$"$j$^$9!%$3$N$h(B
$B$&$JJ8;zNs%j%F%i%k$r!V%R%"%I%-%e%a%s%H!W$H8F$S$^$9!%(B
<< $B$KB3$$$F!$0zMQ=*N;5-9f$K$J$kJ8;zNs$^$?(B
$B$O<1JL;R$r;XDj$7$^$9!%J8;zNs$r;XDj$7$?>l9g$O!$$=$NJ8;zNs$N""$B!$(B''$B!$(B``)$B$,J8;zNsA4BN$N@-<<$B$N8e$m$K$O6uGr$rCV$/$3$H$O$G$-$^$;$s!%(B
$B<1JL;R$^$?$OJ8;zNs$NA0$K(B- $B$,CV$+$l$?>l9g!$6h@Z$j(B
$BJ8;zNs$NA0$N6uGrJ8;z(B($B%?%V$H%9%Z!<%9(B)$B$,
print <<EOF
The price is #{$Price}.
EOF
print <<"EOF" # $B>e$HF1$8(B
The price is #{$Price}.
EOF
print <<`EOC` # $B%3%^%s%I$r
- 123
-
$B@0?t(B
- -123
-
$BId9f$D$-@0?t(B
- 1_234
-
$B@0?t(B(10$B?J@0?t$O(B
_ $B$r4^$`$3$H$,$G$-$k(B)
- 123.45
-
$BIbF0>.?tE@?t(B
- 1.2e-3
-
$BIbF0>.?tE@?t(B
- 0xffff
-
16$B?J@0?t(B
- 0b1011
-
2$B?J@0?t(B
- 0377
-
8$B?J@0?t(B
- ?a
-
$BJ8;z(B
a $B$N%3!<%I(B(97)
- ?\C-a
-
$B%3%s%H%m!<%k(B a $B$N%3!<%I(B(1)
- ?\M-a
-
$B%a%?(B a $B$N%3!<%I(B(225)
- ?\M-\C-a
-
$B%a%?(B-$B%3%s%H%m!<%k(B a $B$N%3!<%I(B(129)
- :symbol
-
$B<1JL;R(B/$BJQ?tL>(B/$B1i;;;R$H0lBP0lBP1~$9$k@0?t!%(B
?$BI=8=$G$OA4$F$N%P%C%/%9%i%C%7%e5-K!$,M-8z$G$9!%(B
Ruby$B$NJQ?t$HDj?t$N$N:G=i$N0lJ8;z$K$h$C$F!$%0%m!<(B
$B%P%kJQ?t!$%$%s%9%?%s%9JQ?t!$%m!<%+%kJQ?t!$%/%i%9Dj?t$N$$$:$l(B
$B$+$K6hJL$5$l$^$9!%DL>o$NJQ?t$N(B2$BJ8;zL\0J9_$O1Q?t;z$^$?$O(B
_ $B$G$"$k$,!$%7%9%F%`JQ?t$N0lIt$K$O(B
$B!V(B`$ '+1$BJ8;z$N5-9f!W$H$$$&JQ?t$,$"$j$^$9!%JQ?tL>(B
$B$ND9$5$K4X$7$F%a%b%j$N%5%$%:0J30$KFCJL$J@)8B$O$"$j$^$;$s!%(B
$BNc(B:
$foobar
$/
`$ '$B$G;O$^$kJQ?t$O%0%m!<%P%kJQ?t$G!$%W%m%0%i%`$N(B
$B$I$3$+$i$G$b;2>H$G$-$^$9!%%0%m!<%P%kJQ?t$K$O@k8@$OI,MW$"$j$^(B
$B$;$s!%=i4|2=$5$l$F$$$J$$%0%m!<%P%kJQ?t$r;2>H$7$?;~$NCM$O(B
nil $B$G$9!%(B
$BNc(B:
@foobar
`@ '$B$G;O$^$kJQ?t$O%$%s%9%?%s%9JQ?t$G$"$j!$FCDj$N(B
$B%*%V%8%'%/%H$K=jB0$7$F$$$^$9!%%$%s%9%?%s%9JQ?t$O$=$N%/%i%9$^(B
$B$?$O%5%V%/%i%9$N%a%=%C%I$+$i;2>H$G$-$^$9!%=i4|2=$5$l$F$$$J$$(B
$B%$%s%9%?%s%9JQ?t$r;2>H$7$?;~$NCM$O(Bnil $B$G$9!%(B
$BNc(B:
foobar
$B>.J8;z$^$?$O(B`_ '$B$G;O$^$k<1JL;R$O%m!<%+%kJQ?t$^$?(B
$B$O%a%=%C%I8F=P$7$G$9!%%m!<%+%kJQ?t%9%3!<%W(B($B%/%i%9!$%b%8%e!<(B
$B%k!$%a%=%C%IDj5A$NK\BN(B)$B$K$*$1$k>.J8;z$G;O$^$k<1JL;R$X$N:G=i(B
$B$NBeF~$O$=$N%9%3!<%W$KB0$9$k%m!<%+%kJQ?t$N@k8@$K$J$j$^$9!%@k(B
$B8@$5$l$F$$$J$$<1JL;R$N;2>H$O0z?t$NL5$$%a%=%C%I8F$S=P$7$H$_$J(B
$B$5$l$^$9!%(B
$B%m!<%+%kJQ?t$N%9%3!<%W$O!$$=$NJQ?t$,@k8@$5$l$?%V%m%C%/!$%a%=%C(B
$B%IDj5A!$$^$?$O%/%i%9(B/$B%b%8%e!<%kDj5A$N=*$j$^$G$G$9!%l9g$O!$$=$N%*%V%8%'%/%H$,>CLG$9$k$^$GB8:_$7$^$9!%F1$8(B
$B%9%3!<%W$r;2>H$9$k
$BDL>o$NJQ?t0J30$K5?;wJQ?t$H8F$P$l$kFC
self
-
$B8=:_$N%a%=%C%I$N
nil
-
NilClass$B%/%i%9$NM#0l$N%$%s%9%?%s%9(B
true
-
TrueClass$B%/%i%9$NM#0l$N%$%s%9%?%s%9!%??$NBeI=CM(B
false
-
FalseClass$B%/%i%9$NM#0l$N%$%s%9%?%s%9!%(Bnil$B$H(Bfalse$B$O56$rI=$7$^$9!%(B
__FILE__
-
$B8=:_$N%=!<%9%U%!%$%kL>(B
__LINE__
-
$B8=:_$N%=!<%9%U%!%$%kCf$N9THV9f(B
$B5?;wJQ?t$NCM$rJQ99$9$k$3$H$O$G$-$^$;$s!%JQ?t$X$NBeF~$ONc30$r(B
$BH/@8$5$;$^$9!%(B
$BNc(B:
FOOBAR
$BBgJ8;z(B([A-Z])$B$G;O$^$k<1JL;R$ODj?t$G$9!%Dj?t$NDj5A(B($B$H=i4|2=(B)
$B$OBeF~$K$h$C$F9T$o$l$^$9$,!$%a%=%C%I$NCf$G$ODj5A$G$-$^$;$s!%(B
$B0lEYDj5A$5$l$?Dj?t$K:F$SBeF~$r9T$*$&$H$9$k$HNc30$,H/@8$7$^$9!%(B
$BDj5A$5$l$F$$$J$$Dj?t$N%"%/%;%9$ONc30$rH/@8$5$;$^$9!%(B
$BDj?t$O$=$NDj?t$,Dj5A$5$l$?%/%i%9(B/$B%b%8%e!<%kDj5A$NCf(B($B%a%=%C%I(B
$BK\BN$d%M%9%H$7$?%/%i%9(B/$B%b%8%e!<%kDj5ACf$r4^$_$^$9(B)$B!$%/%i%9$r(B
$B7Q>5$7$F$$$k%/%i%9!$%b%8%e!<%k$r%$%s%/%k!<%I$7$F$$$k%/%i%9$^(B
$B$?$O%b%8%e!<%k$+$i;2>H$9$k$3$H$,$G$-$^$9!%%/%i%9Dj5A$N30$GDj(B
$B5A$5$l$?Dj?t$O(BObject
$B$K=jB0$9$k$3$H$K$J$j$^$9!%(B
$B%/%i%9Dj5A$O<+F0E*$KDj?t$rDj5A$9$k$N$G!$%/%i%9L>$ODj?t$G$9!%(B
$B$"$k%/%i%9$^$?$O%b%8%e!<%k$GDj5A$5$l$?Dj?t$r30It$+$i;2>H$9$k(B
$B$?$a$K$O(B`:: '$B1i;;;R$rMQ$$$^$9!%(B
Object $B%/%i%9$GDj5A$5$l$F$$$kDj?t$r;2>H$9$k$?$a(B
$B$K$O:8JUL5$7$N(B`:: '$B1i;;;R$rMQ$$$^$9!%(B
$BNc(B:
Foo::Bar
::Bar
$B$?$@$7!$(B`:: '$B1i;;;R$rMQ$$$?BeF~$O$G$-$^$;$s!%(B
$BNc(B:
[1, 2, 3]
$BJ8K!(B:
`[' $B<0(B`,'...`]'
$B$=$l$>$l$N<0$rI>2A$7$?7k2L$r4^$`G[Ns$rJV$7$^$9!%G[Ns$O(BArray$B%/%i%9$N%$%s%9%?%s%9$G$9!%(B
%w $B$H$$$&7A<0$GJ8;zNs$NG[Ns$r4JC1$KI=8=$G$-$^$9!%(B
$B$3$l$O%7%s%0%k%/%)!<%H$G0O$s$@J8;zNs$r6uGrJ8;z$GJ,3d$7$?$N$H(B
$BF1$8$G$9!%$?$H$($P!$(B
%w(foo bar baz)
$B$O(B["foo", "bar", "baz"] $B$HEy2A$G$9!%(B
$BNc(B:
{1=>2, 2=>4, 3=>6}
$BJ8K!(B:
`{' $B<0(B `=>' $B<0(B...`}'
`{' $B<0(B `,' $B<0(B...`}'
$B$=$l$>$l$N<0$rI>2A$7$?7k2L$r%-!<$HCM$H$9$k%O%C%7%e%*%V%8%'%/(B
$B%H$rJV$7$^$9!%%O%C%7%e$H$OG$0U$N%*%V%8%'%/%H$r%-!<(B($BE:;z(B)$B$H$7$F;}(B
$B$DG[Ns$G!$(BHash$B%/%i%9$N%$%s%9%?%s(B
$B%9$G$9!%(B
$B%O%C%7%e$NMWAG$,(B1$B$D0J>e$"$k>l9g!$[#Kf$G$J$1$l$P(B
{ , } $B$O>JN,$G$-$^$9!%(B
$BNc(B:
foo.bar()
foo.bar
bar()
print "hello world\n"
print
Class::new
$BJ8K!(B:
[$B<0(B `.'] $B<1JL;R(B [`(' $B<0(B...[`*' [$B<0(B]],[`&' $B<0(B] `)']
[$B<0(B `::'] $B<1JL;R(B [`(' $B<0(B...[`*' [$B<0(B]],[`&' $B<0(B] `)']
$B%a%=%C%I8F=P$7<0$O%l%7!<%P(B(`.' $B$N1&B&$N<0$NCM(B)$B$N(B
$B%a%=%C%I$r8F$S=P$7$^$9!%%l%7!<%P$,;XDj$5$l$J$$;~$O(Bself
$B$N%a%=%C%I$r8F$S=P$7$^$9!%(B
$B%a%=%C%IL>$K$ODL>o$N<1JL;R$NB>!$<1JL;R$K(B? $B$^$?$O(B
! $B$NB3$$$?$b$N$,5v$5$l$^$9!%47=,$H$7$F!$=R8l(B($B??(B
$B56CM$rJV$9%a%=%C%I(B)$B$K$O(B? $B$r!$F1L>$N(B
(! $B$NL5$$(B)$B%a%=%C%I$KHf$Y$F$h$jGK2uE*$J:nMQ$r$b$D(B
$B%a%=%C%I(B($BNc(B:tr $B$H(Btr! )$B$K$O(B
! $B$r$D$1$k$h$&$K$J$C$F$$$^$9!%(B
$B:G8e$N0z?t$ND>A0$K(B* $B$,$D$$$F$$$k>l9g!$$=$N0z?t$N(B
$BCM$,E83+$5$l$FEO$5$l$^$9!%$D$^$j(B:
foo(*[1,2,3])
$B$O(B
foo(1,2,3)
$B$HF1$8$G$9!%(B
$B:G8e$N0z?t$ND>A0$K(B& $B$,$D$$$F$$$k>l9g!$$=$N0z(B
$B?t$G;XDj$7$?
$B%a%=%C%I$N:]!$(Bprivate$B$J%a%=%C%I$O4X?t7A<0(B($B%l%7!<%P$r(B
$B>JN,$7$?7A<0(B)$B$G$7$+8F$S=P$9$3$H$,$G$-$^$;$s!%$^$?(B
protected$B$J%a%=%C%I$O(Bself $B$,$=$N%a%=%C%I(B
$B$,Dj5A$5$l$?$N$HF1$8%/%i%9(B($B$^$?$O$=$N%5%V%/%i%9(B)$B$G$J$1$l$P8F(B
$B$S=P$9$3$H$,$G$-$^$;$s!%(B
$BNc(B:
super
super(1,2,3)
$BJ8K!(B:
super
super($B<0(B,...)
super $B$O8=:_$N%a%=%C%I$,%*!<%P!<%i%$%I$7$F$$$k%a(B
$B%=%C%I$r8F$S=P$7$^$9!%0z?t$,>JN,$5$l$?>l9g$K$O8=:_$N%a%=%C%I(B
$B$N0z?t$,$=$N$^$^0z$-EO$5$l$^$9!%(B
$BNc(B:
foo = bar
foo[0] = bar
foo.bar = baz
$BJ8K!(B:
$BJQ?t(B '=' $B<0(B
$BDj?t(B '=' $B<0(B
$B<0(B`['expr..`]' '=' $B<0(B
$B<0(B`.'$B<1JL;R(B '=' $B<0(B
$BBeF~<0$OJQ?t$J$I$KCM$r@_Dj$9$k$?$a$KMQ$$$i$l$^$9!%BeF~$O%m!<(B
$B%+%kJQ?t$d%/%i%9Dj?t$N@k8@$K$bMQ$$$i$l$^$9!%BeF~<0$N:8JU$O0J(B
$B2<$N$$$:$l$+$GL5$1$l$P$J$j$^$;$s!%(B
- $BJQ?t(B
$BJQ?t(B `=' $B<0(B
$B:8JUCM$,JQ?t$N>l9g!$<0$rI>2A$7$?CM$,JQ?t$KBeF~$5$l$k!%(B
- $BG[Ns;2>H(B
$B<0(B1`[' $B<0(B2...`]' `=' $B<0(Bn
$B$3$N7A<0$NBeF~$O!$<0(B1$B$rI>2A$7$FF@$i$l$k%*%V%8%'%/%H$KBP$7$F(B
$B$N<0(B2$B$+$i<0(Bn$B$^$G$r0z?t$H$9$k(B []= $B$H$$$&%a%=%C%I(B
$B8F=P$7$H$7$FI>2A$5$l$^$9!%(B
- $BB0@-;2>H(B
$B<0(B1 `.' $B<1JL;R(B `=' $B<0(B2
$B>e5-$N7A<0$NB0@-;2>H%X$NBeF~$O!$<0(B1$B$rI>2A$7$FF@$i$l$k%*%V%8%'(B
$B%/%H$KBP$7$F!$(B$B<1JL;R(B= $B$H$$$&%a%=%C%I$r!$<0(B2$B$r0z(B
$B?t$H$7$F8F$S=P$7$^$9!%(B
$B<+8JBeF~(B
$BNc(B:
foo += 12
$BJ8K!(B:
$B<0(B1 op= $B<0(B2 # $B<0(B1$B$OBeF~2DG=$G$J$1$l$P$J$i$J$$!%(B
$B$3$N7A<0$NBeF~$O(B $B<0(B1 = $B<0(B1 op $B<0(B2 $B$HF1MM$KI>2A(B
$B$5$l$^$9!%$?$@$7!$<0(B1$B$O(B1$BEY$7$+I>2A$5$l$^$;$s!%(Bop $B$O0J2<$N$$(B
$B$:$l$+$N1i;;;R$GL5$1$l$P$J$j$^$;$s!%(B
+, -, *, /, %, **, &, |, ^, <<, >>, &&, ||
$B1i;;;R$H(B= $B$N4V$K%9%Z!<%9$r6u$1$F$O$$$1$^$;$s!%(B
$BB?=EBeF~(B
$BNc(B:
foo, bar, baz = 1, 2, 3
foo, = list()
foo, *rest = list2()
$BJ8K!(B:
$B<0(B `,' [$B<0(B `,'...] [`*' $B<0(B] = $B<0(B [, $B<0(B...][`*' [$B<0(B]]
`*' $B<0(B = $B<0(B [, $B<0(B...][`*' expr]
$BB?=EBeF~$OJ#?t$N<0$^$?$OG[Ns$+$iF1;~$KBeF~$r9T$$$^$9!%:8JU$N(B
$B3F<0$O$=$l$>$lBeF~2DG=$G$J$1$l$P$J$j$^$;$s!%1&JU$N<0$,0l$D$7(B
$B$+M?$($i$l$J$+$C$?>l9g!$<0$rI>2A$7$?CM$OG[Ns$KJQ49$5$l$F!$3F(B
$BMWAG$,:8JU$N$=$l$>$l$N<0$KBeF~$5$l$^$9!%:8JU$NMWAG$N?t$h$j$b(B
$BG[Ns$NMWAG$N?t$NJ}$,B?$$>l9g$K$O!$M>$C$?MWAG$OL5;k$5$l$^$9!%(B
$BG[Ns$NMWAG$,B-$j$J$$>l9g$K$OBP1~$9$kMWAG$NL5$$:8JU$K$O(B
nil $B$,BeF~$5$l$^$9!%(B
$B:8JU$N:G8e$N<0$ND>A0$K(B * $B$,$D$$$F$$$k$H!$BP1~$9(B
$B$k:8JU$N$J$$M>$C$?MWAG$,G[Ns$H$7$FBeF~$5$l$^$9!%M>$C$?MWAG$,(B
$BL5$$;~$K$O6u$NG[Ns$,BeF~$5$l$^$9!%(B
$BNc(B:
foo, bar = [1, 2] # foo = 1; bar = 2
foo, bar = 1, 2 # foo = 1; bar = 2
foo, bar = 1 # foo = 1; bar = nil
foo, bar, baz = 1, 2 # foo = 1; bar = 2; baz = nil
foo, bar = 1, 2, 3 # foo = 1; bar = 2
foo,*bar = 1, 2, 3 # foo = 1; bar = [2, 3]
$BB?=EBeF~$NCM$OG[Ns$KJQ49$5$l$?1&JU$G$9!%(B
$BNc(B:
1+2*3/4
$B%W%m%0%i%_%s%0$NMxJX$N$?$a$K0lIt$N%a%=%C%I8F$S=P$7$H@)8f9=B$$O1i;;;R7A(B
$B<0$r$H$j$^$9!%(BRuby$B$K$O0J2<$K$"$2$k1i;;;R$,$"$j$^$9!%(B
high ::
[]
**
-(unary) +(unary) ! ~
* / %
+ -
<< >>
&
| ^
> >= < <=
<=> == === != =~ !~
&&
||
.. ...
=(+=, -=...)
not
low and or
$B$[$H$s$I$N1i;;;R$OFCJL$J7A<0$N%a%=%C%I8F$S=P$7$G$9$,!$0lIt$N(B
$B$b$N$O8@8l$KAH$_9~$_$G!$:FDj5A$G$-$^$;$s!%:FDj5A$G$-$J$$1i;;(B
$B;R7A<0$N@)8f9=B$$O0J2<$NDL$j$G$9!%(B
=, .., ..., !, not, &&, and, ||, or, ::
$B1i;;;R$NAH9g$;$G$"$k<+8JBeF~1i;;;R$H(B!= , !~
$B$b:FDj5A$G$-$^$;$s!%(B
Ruby$B$G$O(B(C$B$J$I$H$O0[$J$j(B)$B@)8f9=B$$O<0$G$"$C$F!$2?$i$+$NCM$r(B
$B;}$A$^$9!%(BRuby$B$O(BC$B8@8l$d(BPerl$B$+$i0z$-7Q$$$@@)8f9=B$$r;}$A$^$9$,!$(B
$B$=$NB>$K(B$B%$%F%l!<%?(B$B$H$$$&%k!<%WCj>]2=$N5!(B
$BG=$,$"$j$^$9!%%$%F%l!<%?$O7+$jJV$7$r;O$a$H$9$k@)8f9=B$$r%f!<(B
$B%6$,Dj5A$9$k;v$,=PMh$k$b$N$G$9(B.
$BNc(B:
if age >= 12 then
print "adult fee\n"
else
print "child fee\n"
end
gender = if foo.gender == "male" then "male" else "female" end
$BJ8K!(B:
if $B<0(B [then]
$B<0(B...
[elsif $B<0(B [then]
$B<0(B...]...
[else
$B<0(B...]
end
if $B<0$O>r7or7o<0$rI>2A$7$?(B
$BCM$,(B false $B$^$?$O(B nil $B$N;~!$56$G$"(B
$B$k$H8+$J$5$l!$$=$l$i0J30$NA4$F$NCM$O??$G$"$k$H8+$J$5$l$^$9!%(B
Ruby$B$G$O(Bif$B$r7R$2$k$N$K!$(Belsif $B$rMQ$$!$(Belse
if (C$B$N$h$&$K(B)$B$G$b!$(Belif (sh$B$N$h$&$K(B)$B$G$b(B
$BL5$$$3$H$KCm0U$7$F$/$@$5$$!%(B
if $B$N>r7o<0$NItJ,$,J8;zNs$^$?$O@55,I=8=$N%j%F%i(B
$B%k$G$"$k;~$K$O!$(B
$_ =~ $B%j%F%i%k(B
$B$G$"$k$+$N$h$&$KI>2A$5$l$^$9!%(B
$BNc(B:
print "debug\n" if $debug
$BJ8K!(B:
$B<0(B if $B<0(B
$B1&JU$N>r7o$,@.N)$9$k;~$K!$:8JU$N<0$rI>2A$7$^$9!%(B
$BNc(B:
unless $baby
feed_meat
else
feed_milk
end
$BJ8K!(B:
unless $B<0(B [then]
$B<0(B...
[else
$B<0(B...]
end
unless $B$O>r7or7o$,(Bif
$B$HH?BP$G!$>r7o$,56$N;~$K
$BNc(B:
print "stop\n" unless valid($passwd)
$BJ8K!(B:
$B<0(B unless $B<0(B
$B1&JU$N>r7o$,@.N)$7$J$$;~$K!$:8JU$N<0$rI>2A$7$^$9!%(B
$BNc(B:
case $age
when 0 .. 2
"baby"
when 3 .. 6
"little child"
when 7 .. 12
"child"
when 12 .. 18
# 12$B$O$9$G$K(B"child"$B$K%^%C%A$7$F$$$k(B
"youth"
else
"adult"
end
$BJ8K!(B:
case $B<0(B
[when $B<0(B [, $B<0(B]...[then]
$B<0(B..]..
[else
$B<0(B..]
end
case $B$O0l$D$N<0$KBP$9$k0lCWH=Dj$K$h$kJ,4t$r9T$$(B
$B$^$9!%(Bwhen $B@a$G;XDj$5$l$?CM$H:G=i$N<0$rI>2A$7$?(B
$B7k2L$H$r1i;;;R(B === $B$rMQ$$$FHf3S$7$F!$0lCW$9$k>l(B
$B9g$K$O(Bwhen $B@a$NK\BN$r
$B$D$^$j!$(B
case $B<0(B0
when $B<0(B1, $B<0(B2
stmt1
when $B<0(B3, $B<0(B4
stmt2
else
stmt3
end
$B$O0J2<$N(Bif $B<0$H$[$\Ey2A$G$9!%(B
=== $B$,$I$N$h$&$J>r7o$G??$K$J$k$+$O!$3F%/%i%9$N(B
=== $B%a%=%C%I$NF0:n$K$D$$$F$N%I%-%e%a%s%H$r;2>H$7(B
$B$F2<$5$$!%(B
_tmp = $B<0(B0
if $B<0(B1 === _tmp || $B<0(B2 === _tmp
stmt1
elsif $B<0(B3 === _tmp || $B<0(B4 === _tmp
stmt2
else
stmt3
end
$BNc(B:
test && set
test and set
$BJ8K!(B:
$B<0(B `&&' $B<0(B
$B<0(B `and' $B<0(B
$B$^$:!$:8JU$rI>2A$7$F!$7k2L$,??$G$"$C$?>l9g$K$O1&JU$bI>2A$7$^(B
$B$9!%(Band $B$OF1$8F/$-$r$9$kM%@h=g0L$NDc$$1i;;;R$G$9!%(B
$BNc(B:
demo || die
demo or die
$BJ8K!(B:
$B<0(B `||' $B<0(B
$B<0(B or $B<0(B
$B$^$:!$:8JU$rI>2A$7$F!$7k2L$,56$G$"$C$?>l9g$K$O1&JU$bI>2A$7$^(B
$B$9!%(Bor $B$OF1$8F/$-$r$9$kM%@h=g0L$NDc$$1i;;;R$G$9!%(B
$BNc(B:
! me
not me
i != you
$BJ8K!(B:
`!' $B<0(B
not $B<0(B
$B<0$NCM$,??$G$"$k;~56$r!$56$G$"$k;~??$rJV$7$^$9!%(B
$B<0(B `!=' $B<0(B
!($B<0(B == $B<0(B) $B$HF1$8!%(B
$B<0(B `!~' $B<0(B
!($B<0(B =~ $B<0(B) $B$HF1$8!%(B
$BNc(B:
1 .. 20
/first/ ... /second/
$BJ8K!(B:
$B<0(B1 `..' $B<0(B2
$B<0(B1 `...' $B<0(B2
$B>r7o<00J30$N>l=j$G$O<0(B1$B$+$i<0(B2$B$^$G$NHO0O%*%V%8%'%/%H$rJV$7$^(B
$B$9!%HO0O%*%V%8%'%/%H$O(BRange$B%/%i%9(B
$B$N%$%s%9%?%s%9$G$9!%(B... $B$G@8@.$5$l$?HO0O%*%V%8%'%/%H$O(B
$B=*C<$r4^$_$^$;$s!%(B
$B>r7o<0$H$7$FHO0O;XDj<0$,MQ$$$i$l$?>l9g$K$O!$<0(B1$B$,??$K$J$k$^(B
$B$G$O56$rJV$7!$$=$N8e$O<0(B2$B$,??$rJV$9$^$G$O??$rJV$7$^$9!%<0(B2$B$,(B
$B??$K$J$l$P>uBV$O56$KLa$j$^$9!%(B.. $B$O<0(B1$B$,??$K$J$C(B
$B$?;~$K$9$0$K<0(B2$B$rI>2A$7(B(awk$B$N$h$&$K(B)$B!$(B... $B$O2A$^$G<0(B2$B$rI>2A$7$^$;$s(B(sed$B$N$h$&$K(B)$B!%(B
$BNc(B:
while sunshine
work()
end
$BJ8K!(B:
while $B<0(B [do]
...
end
$B<0$rI>2A$7$?CM$,??$N4V!$K\BN$r7+$jJV$7$F
$BNc(B:
sleep while idle
$BJ8K!(B:
$B<0(B while $B<0(B
$B1&JU$N<0$rI>2A$7$?CM$,??$N4V!$:8JU$r7+$jJV$7$Fbegin $B$G$"$k>l9g$K$O!$$=$l$r:GDc0lEY$O(B
$BI>2A$7$^$9!%(B
$BNc(B:
until sunrise
sleep
end
$BJ8K!(B:
until $B<0(B [do]
...
end
$B<0$rI>2A$7$?CM$,??$K$J$k$^$G!$K\BN$r7+$jJV$7$F
$BNc(B:
work until tired
$BJ8K!(B:
$B<0(B until $B<0(B
$B1&JU$N<0$rI>2A$7$?CM$,??$K$J$k$^$G!$:8JU$r7+$jJV$7$Fbegin $B$G$"$k>l9g$K$O!$:8JU$r:GDc(B
$B0lEY$OI>2A$7$^$9!%(B
$BNc(B:
[1,2,3].each do |i| print i*2, "\n" end
[1,2,3].each{|i| print i*2, "\n"}
$BJ8K!(B:
method_call do [`|' expr...`|'] expr...end
method_call `{' [`|' $B<0(B...`|'] $B<0(B...`}'
$B%$%F%l!<%?$H$O@)8f9=B$(B($BFC$K%k!<%W(B)$B$NCj>]2=$N$?$a$KMQ$$$i$l$k(B
$B%a%=%C%I$N0ldo ... end$B$^$?$O(B
{ ... } $B$G0O$^$l$?%3!<%I$NCGJR(B($B%V%m%C%/$H8F$P$l$k(B)$B$r(B
$B8e$m$KIU$1$F%a%=%C%I$r8F$S=P$9$H!$$=$N%a%=%C%I$NFbIt$+$i%V%m%C(B
$B%/$rI>2A$G$-$^$9(B($B$*$=$i$/$OJ#?t2s(B)$B!%$3$N$h$&$J%V%m%C%/$r8F$S(B
$B=P$9%a%=%C%I$r%$%F%l!<%?$H8F$S$^$9!%%$%F%l!<%?$+$i$N%V%m%C%/(B
$B$N8F$S=P$7$O(Byield $B<0$rMQ$$(B
$B$^$9!%(Byield$B$KEO$5$l$?CM$O(B | $B$H(B |
$B$N4V$K$O$5$^$l$?JQ?t$KBeF~$5$l$^$9!%(B
{ ... } $B$NJ}$,(Bdo ... end $B%V%m%C%/$h$j$b7k9g6/EY$,(B
$B6/$$$G$9!%Nc$($P(B:
foobar a, b do .. end # foobar $B$,%$%F%l!<%?$H$7$F8F$S=P$5$l$^$9(B
foobar a, b { .. } # b $B$,%$%F%l!<%?$H$7$F8F$S=P$5$l$^$9(B
$B%V%m%C%/$NCf$G=i$a$FBeF~$5$l$?(B($B@k8@$5$l$?(B)$B%m!<%+%kJQ?t$O$=$N(B
$B%V%m%C%/$NCf$G$@$1M-8z$G$9!%Nc$($P(B
foobar {
i = 20 # $B%m!<%+%kJQ?t(B `i' $B$,@k8@$5$l$?(B
...
}
print defined? i # `i' $B$O$3$3$G$OL$Dj5A(B
foobar a, b { .. } # $B%V%m%C%/FbIt$G$@$1M-8z(B
$BNc(B:
for i in [1, 2, 3]
print i*2, "\n"
end
$BJ8K!(B:
for lhs... in $B<0(B [do]
$B<0(B..
end
$B<0$rI>2A$7$?7k2L$N%*%V%8%'%/%H$N3FMWAG$KBP$7$FK\BN$r7+$jJV$7(B
$B$F
($B<0(B).each `{' `|' lhs..`|' $B<0(B.. `}'
$B!V$[$\!W$H$$$&$N$O!$(Bdo ... end $B$^$?$O(B{ }
$B$K$h$k%V%m%C%/$O?7$7$$%m!<%+%kJQ?t$NM-8zHO0O$rF3F~$9(B
$B$k$N$KBP$7!$(Bfor $BJ8$O%m!<%+%kJQ?t$N%9%3!<%W$K1F6A(B
$B$r5Z$\$5$J$$E@$,0[$J$k$+$i$G$9!%(B
$BNc(B:
yield data
$BJ8K!(B:
yield `(' [$B<0(B [`,' $B<0(B...]])
yield [$B<0(B [`,' $B<0(B...]]
$B0z?t$r%V%m%C%/$N0z?t$H$7$FBeF~$7$F!$%V%m%C%/$NI>2A(B($B$"$k$$$O(B
$Byield$B$ryield
$B$NCM$O%V%m%C%/$rI>2A$7$?CM$G$9!%(B
$BNc(B:
raise "you lose" # $BNc30(BRuntimeError$B$rH/@8$5$;$k(B
# $B0J2<$NFs$D$O(B SyntaxError $B$rH/@8$5$;$k(B
raise SyntaxError, "invalid syntax"
raise SyntaxError.new("invalid syntax")
raise # $B:G8e$NNc30$N:FH/@8(B
$BJ8K!(B:
raise
raise message$B$^$?$O(Bexception
raise error_type, message
raise error_type, message, traceback
$BNc30$rH/@8$5$;$^$9!%Bh0l$N7A<0$G$OD>A0$NNc30$r:FH/@8$5$;$^$9!%(B
$BBhFs$N7A<0$G$O!$0z?t$,J8;zNs$G$"$C$?>l9g!$$=$NJ8;zNs$r%a%C%;!<(B
$B%8$H$9$k(B RuntimeError $BNc30$rH/@8$5$;$^$9!%0z?t(B
$B$,Nc30$G$"$C$?>l9g$K$O$=$NNc30$rH/@8$5$;$^$9!%Bh;0$N7A<0$G$O(B
$BBh0l0z?t$G;XDj$5$l$?Nc30$r!$BhFs0z?t$r%a%C%;!<%8$H$7$FH/@8$5(B
$B$;$^$9!%Bh;M$N7A<0$NBh;00z?t$O(B
$@$B$^$?$O(B
caller $B$GF@$i$l$k(B
$B%9%?%C%/>pJs$G!$Nc30$,H/@8$7$?>l=j$r<($7$^$9!%(B
$BH/@8$7$?Nc30$OJQ?t(B $! $B$K3JG<$5$l$^$9!%$^$?Nc30$,(B
$BH/@8$7$?%=!<%9%3!<%I>e$N0LCV$OJQ?t(B $@ $B$K3JG<$5$l(B
$B$^$9!%(B
raise $B$O(B Ruby $B$NM=Ls8l$G$O$J$/!$(B
Kernel $B%b%8%e!<%k$GDj5A$5$l$F$$$k4X?tE*%a%=%C%I$G$9!%(B
raise $B$K$O(B fail $B$H$$$&JLL>$bDj5A$5(B
$B$l$F$$$^$9!%(B
$BNc(B:
begin
do_something
rescue
recover
ensure
must_to_do
end
$BJ8K!(B:
begin
$B<0(B..
[rescue [error_type,..]
$B<0(B..]..
[else
$B<0(B..]
[ensure
$B<0(B..]
end
begin $B$OK\BN$rI>2A$7!$:G8e$KI>2A$5$l$?<0$NCM$rJV(B
$B$7$^$9!%(B
$BK\BN$Nl9g!$(Brescue $B@a$,M?(B
$B$($i$l$F$$$?>l9gNc30$rJaB*$G$-$^$9!%H/@8$7$?Nc30$H0lCW$9$k(B
rescue $B@a$,B8:_$9$k;~$K$O(Brescue $B@a$N(B
$BK\BN$,rescue$B@a$G;XDj$7$?%/%i%9$HF1$8$+$^$?$O%5%V%/%i(B
$B%9$G$"$k$+$I$&$+(B kind_of?
$B$rMQ$$$FH=Dj$5$l$^$9!%%/%i%9$,>JN,$5$l$?;~$O(B
StandardError $B$N%5%V%/%i%9$G$"$kA4$F$NNc30$rJaB*$7$^$9!%(B
Ruby$B$NAH$_9~$_Nc30$O(B
(SystemExit $B$d(BInterrupt $B$N$h$&$J(B
$BC&=P$rL\E*$H$7$?$b$N$r=|$$$F(B)
StandardError $B$N%5%V%/%i%9$G$9!%(B
rescue $B$G$O(Berror_type $B$ODL>o$N0z?t$H(B
$BF1$8$h$&$KI>2A$5$l!$$=$N$$$:$l$+$,0lCW$9$l$PK\BN$,error_type$B$rI>2A$7$?CM$,%/%i%9$d%b%8%e!<%k(B
$B$G$J$$>l9g$K$ONc30(BTypeError $B$,H/@8$7$^$9!%(B
begin $B$K$O>JN,2DG=$J(Belse $B@a$r;XDj$9(B
$B$k$3$H$,$G$-$F!$K\BN$N
ensure $B@a$,B8:_$9$k;~$O(Bbegin $B<0$r=*(B
$BN;$9$kD>A0$KI,$:(Bensure $B@a$NK\BN$rI>2A$7$^$9!%(B
$BNc(B:
retry
$BJ8K!(B:
retry
begin $B<0$N(Brescue $B@a$G;H$o$l$?>l9g!$(B
begin $B<0$r;O$a$+$i$b$&0lEY
begin
do_something # exception raised
rescue
# handles error
retry # restart from beginning
end
$B%$%F%l!<%?!$%V%m%C%/$^$?$O(Bfor$BJ8$NCf$G;H$o$l$?>l9g$K$O!$$=$N(B
$B%$%F%l!<%?$r5/F0$7$J$*$7$^$9!%%$%F%l!<%?$N0z?t$b:FI>2A$5$l$^(B
$B$9!%(B
for i in 1..5
retry if some_condition # i == 1 $B$+$i$d$jD>$7(B
end
# $B%f!<%6Dj5A$N(B "until$B%k!<%W(B"
def UNTIL(cond)
yield
retry if not cond
end
rescue $B@a$d%$%F%l!<%?0J30$G(Bretry$B$,MQ$$$i$l$?>l9g(B
$B$K$O%(%i!<$K$J$j$^$9!%(B
$BNc(B:
return
return 12
return 1,2,3
$BJ8K!(B:
return [$B<0(B[`,' $B<0(B...]]
$B<0$NCM$rLa$jCM$H$7$F%a%=%C%I$Ne(B
$BM?$($i$l$?;~$K$O!$$=$l$i$rMWAG$H$9$kG[Ns$r%a%=%C%I$NLa$jCM$H(B
$B$7$^$9!%<0$,0l$D$b$J$$>l9g$K$O(B nil $B$,La$jCM$H$J(B
$B$j$^$9!%(B
$BNc(B:
i=0
while i<3
print i, "\n"
break
end
$BJ8K!(B:
break
break $B$O$b$C$H$bFbB&$N%k!<%W$rC&=P$7$^$9!%%k!<(B
$B%W$H$O(B
- while
- until
- for
- $B%$%F%l!<%?(B
$B$N$$$:$l$+$r;X$7$^$9!%(BC$B$H0c$$!$(Bbreak $B$O%k!<%W$r(B
$BC&=P$9$k:nMQ$@$1$r;}$A!$(Bcase $B$rH4$1$k:nMQ$O;}$A(B
$B$^$;$s!%(B
$BNc(B:
next
$BJ8K!(B:
next
next $B$O$b$C$H$bFbB&$N%k!<%W$N
$BNc(B:
redo
$BJ8K!(B:
redo
$B%k!<%W>r7o$N%A%'%C%/$r9T$J$o$:!$8=:_$N7+$jJV$7$r$d$jD>$7$^$9!%(B
$BNc(B:
BEGIN {
...
}
$BJ8K!(B:
BEGIN '{' $BJ8(B.. '}'
$B=i4|2=%k!<%A%s$rEPO?$7$^$9!%(BBEGIN $BD>8e$N(B
{ } $BFbIt(B(BEGIN $B%V%m%C%/(B)$B$G;XDj$7$?J8(B
$B$OEv3:%U%!%$%k$N$I$NJ8$,BEGIN$B$,;XDj$5$l$?>l9g$K$O;XDj$5$l$?=g$KBEGIN$B%V%m%C%/$OFHN)$7$?%m!<%+%kJQ?t$N%9%3!<%W$r(B
$BF3F~$9$k$?$a!$%m!<%+%kJQ?t$r30It$H6&M-$9$k;v$O$"$j$^$;$s!%>p(B
$BJs$NEAC#$K$O%0%m!<%P%kJQ?t$r;H$&I,MW$,$"$j$^$9!%(B
BEGIN $B$O%H%C%W%l%Y%k$K$7$+CV$/;v$O$G$-$^$;$s!%(B
$BNc(B:
END {
...
}
$BJ8K!(B:
END '{' $BJ8(B.. '}'
$B!V8e;OKv!W%k!<%A%s$rEPO?$7$^$9!%(BEND $B%V%m%C%/$G;X(B
$BDj$7$?J8$O%$%s%?%W%j%?$,=*N;$9$k;~$KEND$B%V%m%C%/$O!$(BBEGIN $B%V%m%C%/$H$O0[(B
$B$J$j!$%$%F%l!<%?$HF1MM$N%9%3!<%W$r;}$A!$<~0O$H%9%3!<%W$r6&M-(B
$B$7$^$9!%(BEND $B%V%m%C%/$O0lHV:G=i$KI>2A$5$l$?;~$K(B1
$B2s$@$1EPO?$r9T$$$^$9!%J#?tEPO?$9$kI,MW$,$"$k>l9g$K$O(B
at_exit$B$r;H$C$F$/$@$5$$!%(B
END $B$b%H%C%W%l%Y%k$K$7$+CV$/;v$O$G$-$^$;$s!%(B
$B$=$l$H!$(BEND $B$GEPO?$5$l$?
$BNc(B:
class Foo < Super
def test
:
end
:
end
$BJ8K!(B:
class $B<1JL;R(B [`<' superclass ]
$B<0(B..
end
$BNc(B:
class << obj
def test
:
end
:
end
$BJ8K!(B:
class `<<' expr
$B<0(B..
end
$B%/%i%9Dj5A$HF1$89=J8$GFCDj$N%*%V%8%'%/%H$N5!G=$rDj5A$7$^$9!%(B
$B$3$N9=J8$NFbIt$GDj5A$7$?%a%=%C%I$dDj?t$O;XDj$7$?%*%V%8%'%/%H(B
$B$KBP$7$F$@$1M-8z$K$J$j$^$9!%(B
$BNc(B:
module Foo
def test
:
end
:
end
$BJ8K!(B:
module $B<1JL;R(B
$B<0(B..
end
$B%b%8%e!<%k$rDj5A$7$^$9!%%b%8%e!<%kL>$O%"%k%U%!%Y%C%H$NBgJ8;z(B
$B$G;O$^$k<1JL;R$G$9!%(B
$BNc(B:
def fact(n)
if n == 1 then
1
else
n * fact(n-1)
end
end
$BJ8K!(B:
def $B%a%=%C%IL>(B [`(' [arg ['=' default]]...[`,' `*' arg ]`)']
$B<0(B..
end
$B%a%=%C%I$rDj5A$7$^$9!%%a%=%C%IL>$H$7$F$ODL>o$N<1JL;R$NB>$K!$(B
$B:FDj5A2DG=$J1i;;;R(B($BNc(B: ==, +, -$B$J$I(B)$B$b;XDj$G$-$^$9!%%a%=%C%I(B
$B$ODj5A$9$kA0$K8F$S=P$9$3$H$O$G$-$^$;$s!%Nc$($P(B
foo
def foo
print "foo\n"
end
$B$OL$Dj5A%a%=%C%I$N8F$S=P$7$GNc30$,H/@8$7$^$9!%(B
$B2>0z?t$K%G%U%)%k%H<0$,M?$($i$l$?>l9g!$%a%=%C%I8F$S=P$7;~$Kl9g$K$O%G%U%)%k%H<0$rI>2A$7$?7k2L$G=i(B
$B4|2=$5$l$^$9(B($B%G%U%)%k%H<0$NI>2A$O8F$S=P$7;~$K9T$o$l$^$9(B)$B!%:G(B
$B8e$N2>0z?t$ND>A0$K(B* $B$,$"$k>l9g$K$O;D$j$N
$B$^$?:G8e$N2>0z?t$ND>A0$K(B& $B$,$"$k$H$3$N%a%=%C(B
$B%I$KM?$($i$l$F$$$k%V%m%C%/$,*$B$H(B& $B$,F1;~$K;X(B
$BDj$5$l$k>l9g$K$O(B& $B$,8e$m$KMh$^$9!%(B
$B%a%=%C%IDj5A$O%M%9%H$G$-$^$;$s!%(B
$B%a%=%C%I$NLa$jCM$O(Breturn $B$G(B
$BM?$($?CM$+!$$^$?$OK\BN$N:G8e$GI>2A$7$?<0$NCM$G$9!%(B
$B%a%=%C%I$K$O8F$S=P$7@)8B$r2C$($k$3$H$,$G$-!$@)8B$r2C$($i$l$?(B
$B%a%=%C%I$O!$4X?t7A<0$G$7$+8F$S=P$;$^$;$s(B(private$B%a%=%C%I(B)$B!%(B
$B%a%=%C%I$rDj5A$9$k>l9g!$%/%i%9Dj5A$N30$K$"$k(Bdef$B<0$O%G%U%)%k(B
$B%H$G$O(Bprivate$B%a%=%C%I$rDj5A$7!$%/%i%9Dj5A$NCf$K$"$k(Bdef$B<0$O(B
public$B%a%=%C%I$rDj5A$7$^$9!%$3$l$O%G%U%)%k%H$G$"$C$F!$(B
Module $B%/%i%9(B
$B$GDj5A$5$l$F$$$k(B
public ,
private $B$rMQ$$(B
$B$FJQ99$G$-$^$9!%(B
$B$^$?!$(Binitialize $B$H$$$&L>A0$N%a%=%C%I$O>o$K(B
private$B$H$7$FDj5A$5$l$^$9!%(B
$BNc(B:
def foo.test
print "this is foo\n"
end
$BJ8K!(B:
def $B<0(B `.' $B<1JL;R(B [`(' [$B0z?t(B [`=' default]]...[`,' `*' $B0z?t(B ]`)']
$B<0(B..
end
$BFC0[%a%=%C%I$H$O$"$kFCDj$N%*%V%8%'%/%H$K8GM-$N%a%=%C%I$G$9!%(B
$BFC0[%a%=%C%I$NDj5A$O%M%9%H$G$-$^$9!%(B
$B%/%i%9$NFC0[%a%=%C%I$O$=$N%5%V%/%i%9$K$b7Q>5$5$l$^$9!%8@$$BX(B
$B$($l$P%/%i%9$NFC0[%a%=%C%I$OB>$N%*%V%8%'%/%H;X8~%7%9%F%`$K$*(B
$B$1$k%/%i%9%a%=%C%I$NF/$-$r$9$k$3$H$K$J$j$^$9!%(B
$BNc(B:
alias foo bar
alias $MATCH $&
$BJ8K!(B:
alias $B?7%a%=%C%IL>(B $B5l%a%=%C%IL>(B
alias $B?7JQ?tL>(B $B5lJQ?tL>(B
$B%a%=%C%I$"$k$$$OBg0hJQ?t$KJLL>$r$D$1$^$9!%%a%=%C%I$NDj5AFb$G(B
$BJLL>$rIU$1$k$K$O(BModule$B%/%i%9$N%a%=%C%I(B
alias_method
$B$rMxMQ$7$F2<$5$$!%(B
$BJLL>$rIU$1$i$l$?%a%=%C%I$O!$$=$N;~E@$G$N%a%=%C%IDj5A$r0z$-7Q(B
$B$.!$85$N%a%=%C%I$,:FDj5A$5$l$F$b!$:FDj5AA0$N8E$$%a%=%C%I$HF1(B
$B$8F/$-$r$7$^$9!%(B
$B@55,I=8=$NItJ,J8;zNs$KBP1~$9$kJQ?t(B
$1 ,$2 ,...$B$K$OJLL>$rIU$1$k$3$H$,$G(B
$B$-$^$;$s!%$^$?!$%$%s%?%W%j%?$KBP$7$F=EMW$J0UL#$N$"$kBg0hJQ?t(B
$B$r:FDj5A$9$k$HF0:n$K;Y>c$rMh$9>l9g$,$"$j$^$9!%(B
$BNc(B:
undef bar
$BJ8K!(B:
undef $B%a%=%C%IL>(B
$B%a%=%C%I$NDj5A$rC$7$^$9!%%a%=%C%I$NDj5AFb$GDj5A$rC(B
$B$9$K$O(BModule$B%/%i%9$N%a%=%C%I(B
undef_method
$B$rMxMQ$7$F2<$5$$!%(Balias $B$K$h$kJLL>Dj5A$H(B
undef $B$K$h$kDj5AC$7$K$h$C$F%/%i%9$N%$%s%?%U%'!<(B
$B%9$r%9!<%Q!<%/%i%9$HFHN)$KJQ99$9$k$3$H$,$G$-$^$9!%$?$@$7!$%a(B
$B%=%C%I$,(Bself$B$K%a%C%;!<%8$rAw$C$F$$$k>l9g$b$"$k$N$G!$$h$/Cm0U(B
$B$7$J$$$H4{B8$N%a%=%C%I$,F0:n$7$J$/$J$k2DG=@-$,$"$j$^$9!%(B
$BNc(B:
defined? print
defined? File.print
defined?(foobar)
defined?($foobar)
defined?(@foobar)
defined?(Foobar)
$BJ8K!(B:
defined? $B<0(B
$B<0$,Dj5A$5$l$F$$$J$1$l$P!$56$rJV$7$^$9!%Dj5A$5$l$F$$$l$P<0$N
$BA0(B
-
$B
-
$BL\
matz@netlab.co.jp
|