e$B@.@%$G$9!#e(B
Yukihiro M. wrote:
e$B$3$N?M9)E*$JNc$+$ie(Bnil.to_se$B$,e(B"“e$B$G$”$k$Y$-M}M3$rFI$<h$k$3$H$Oe(B
e$B$G$-$^$;$s$G$7$?!#$3$NNc$O!VB8:$7$J$$%-!<$KBP$7$F6uJ8;zNs$,e(B
e$B$[$7$$!W$H$$$&$3$H$J$s$@$H;W$&$s$G$9$,!"$=$&$$$&L\E*$N$?$a$Ke(B
Hashe$B$K$O%G%U%)%k%HCM$,MQ0U$5$l$F$^$9$h$M!#e(B
e$B$-$C$A$j=q$/$J$i$P!"%G%U%)%k%HCM$de(B fetch(key, “”)e$B!"e(B
hoge || “” e$BEy$r;H$&$Y$-$G$9$M!#e(B
e$B$b$&$A$g$C$H<B:]$K$"$j$=$&$JNc$G$9$H!"e(B
e$B$H$$$&e(B HTML e$B$+$i!"$H$$$&e(BCGIe$B$KEj9F$9$k>l9g$G$7$g$&$+e(B
CGIe$B$O%G%U%)%k%He(B "" e$B$G$9$,!"!"e(Bwebrick e$B$Oe(B nil
e$B$J$N$G%(%i!<$,=P$^$9!#e(B
require'webrick/cgi'
class MyCGI < WEBrick::CGI
def do_GET(req,res)
res.body = 'Hello, '+req.query['name']
end
end
MyCGI.new.start
e$B$^$?!"F~NO$,6u$N;~$K!"e(B
res.body = ‘input your name’
if req.query[‘name’].nil? or req.query[‘name’].empty?
e$B$H=q$/$N$r$*$C$/$&$,$C$F!“e(B
if req.query[‘name’].to_s.empty?
e$B$H=q$/$N$b7k9=$”$k$+$H!#e(B
1000e$B7o0z$C$+$+$j$^$7$?e(B
ruby 1.9 e$B$G$be(B grep e$B$9$k$H$R$C$+$+$j$^$9!#e(B
ext/extmk.rb: unless $destdir.to_s.empty? or
$mflags.include?(“DESTDIR”)
ext/extmk.rb:unless $destdir.to_s.empty?
ext/tk/sample/tkextlib/treectrl/demo.rb: unless sty.to_s.empty?
lib/soap/httpconfigloader.rb: if value.nil? or value.to_s.empty?
lib/yaml/baseemitter.rb: return “” if
text.to_s.empty?
lib/yaml/rubytypes.rb: unless val[‘mods’].to_s.empty?
lib/yaml/ypath.rb: unless str.to_s.empty?
e$BK\Ev$Oe(B nil.empty? e$B$,$"$k$H$$$$$s$G$9$1$I!#e(B
|to_s e$B$N>l9g$OA0ED$5$s$Ne(B [ruby-dev:29393] e$B$KF1;]$G$9$,!"e(B
|e$B$J$K$+$Ke(B nil e$B$NJQ497k2L$r2C$($F$b!V$J$s$G$b$J$$!W$N$@$+$i!"e(B
e$B!V$J$K$+$Ke(B nil e$B$NJQ497k2L$r2C$($F$b!V$J$s$G$b$J$$!W!W$+$I$&e(B
e$B$+$O<+L@$G$O$J$$$H;W$$$^$9!#$D$^$j!“!V$J$<$=$&$”$k$Y$-$+!W$He(B
e$B$$$&$3$H$,<($;$l$P!“e(Bnil.to_se$B$,e(B”“e$B$G$”$j!"e(Bto_i, to_fe$B$J$I$b;D$9e(B
e$B$H$$$&7kO@$rF3$1$k$N$G$O!#e(B
e$B!V$J$<$=$&$"$k$Y$-$+!W$G$9$+!#e(B
e$B8_49@-$r8@$C$F$bLLGr$/$J$$$N$GO@M}E*$K9T$C$F$_$^$9!#e(B
e$B;W$&$Ke(B nil
e$B$,F~NO$H$7$FHt$S9~$s$GMh$k;vBV$O4pK\E*$K0[>o;vBV$G$"$j!"e(B
e$B$3$N$h$&$J%(%i!<>uBV$r$I$&07$&$+9M$($k$3$H$K$J$j$^$9!#e(B
e$B$3$N$h$&$J>l9g0lHL$KFs$D$N<jK!!"e(B
- e$B%(%i!<$,5/$-$?$i$=$3$G;_$a$FBP=h$rGw$k<jK!e(B
- e$B%(%i!<$,5/$-$F$bE,Ev$K2sHr$7$F@h$K?J$a$k<jK!e(B
e$B$,$“$k$G$7$g$&!#e(B
e$B:#2s$N>l9g!“e(B"nil” e$B$de(B e$BNc30$,A0<T$K$”$?$j!“e(B
e$B<+L@$G$O$”$j$^$;$s$,e(B “” e$B$de(B 0
e$B$,8e<T$K$J$k;v$O8e$G=R$Y$^$9!#e(B
e$B!He(BFailure-Obliviousness in
Googlee$B!I!V%(%i!<K:5Q7?%3%s%T%e!<%F%#%s%0!We(B
e$B$5$F!"e(Bto_s e$B$G$9$,!"e(B
e$BF@BN$NCN$l$J$$F~NO$re(B to_s.empty?
e$B$7$F$$k$H$$$&J}K!$rI.F,$K!“e(B
e$B$H$j$”$($:e(B to_s e$B$7$F$+$i9M$($kJ}K!$,$7$P$7$P;H$o$l$F$$$kE@!“e(B
to_s e$B$OA4$F$Ne(B Object e$B$,;}$D$”$j$U$l$?%a%=%C%I$G$"$kE@!“e(B
e$B$h$je(B strict e$B$G$”$k$H4|BT$5$l$ke(B to_str
e$B$,JL$KB8:$9$kE@$r9MN8$9$k$H!"e(B
e$B$=$3$G%(%i!<$H$$J$7$FDd;$5$l$k$h$j$b!“e(B
e$B@h$N!He(BFailure-Obliviousness in Googlee$B!I$N8@MU$r<Z$j$k$He(B
e$B!VH/@8$7$?%(%i!<$r!VL5$+$C$?$3$H!W!W$K$7$?$$>l9g$G$”$m$&$H?dB,$7$^$9!#e(B
e$B!V%(%i!<$rL5$+$C$?;v$K$7$?$$!W$+$i$O!"e(B
e$B!V$J$K$+$Ke(B nil
e$B$NJQ497k2L$r2C$($F$b!V$J$s$G$b$J$$!W!W$3$H$OF3$1$^$9!#e(B
e$B$h$C$F!"e(Bto_s e$B$K$D$$$F!"e(Bstring + nil.to_s == string
e$B$,4|BT$5$l$^$9!#e(B
e$B$D$^$j!"Nm85$,4|BT$5$l!"J8;zNs$K$*$$$F$Oe(B “” e$B$G$7$g$&!#e(B
to_i e$B$Oe(B to_s e$B$[$I$K0lHLE*$G$O$“$j$^$;$s$,!“e(B
Ruby 1.9 e$B$Ne(B ruby/ e$B2<$K$$$$F<j85$G$Oe(B 1068e$B9T$G=P8=e(B
(to_se$B$Oe(B2011)
e$B$9$k$[$I$K$"$j$U$l$F$$j!“e(B
e$B$^$?$h$j87L)$J$3$H$,4|BT$5$l$ke(B to_int e$B$,JL$KB8:_$7$^$9!#e(B
e$B$h$C$F!”$3$l$b$^$?!”%(%i!<$rL5$+$C$?;v$K$7$?$$%a%=%C%I$G$7$g$&!#e(B
e$B$h$C$F!”@0?t$J$i$Pe(B 0 e$B$G$7$g$&!#e(B
to_f e$B$Oe(B to_float e$B$N$h$&$J%a%=%C%I$b$"$j$^$;$s$7!“e(B
to_s e$B$de(B to_i e$BEy$KHf$Y$l$P;HMQIQEY$b0l7eMn$A$^$9$,!“e(B
to_s, to_i, to_a e$B$HF1$8e(B to_e$B0lJ8;ze(B
e$B7O$N%a%=%C%I$G$”$k$?$a!“e(B
e$BF1MM$K%+%8%e%”%ke(B (e$B8@$$49$($l$P%k!<%:e(B)
e$B$J$b$N$HDL>o?dB,$5$l$k$G$7$g$&!#e(B
e$B$h$C$F!”>.?t$G$Oe(B 0.0 e$B$,E,Ev$G$7$g$&!#e(B
e$B$=$&$$$($P!“e(Bto_a e$B$b$”$j$^$9$,!"$3$l$bF1MM$KNm85e(B []
e$B$,E,Ev$+$H!#e(B
e$B0lJ}$Ne(B String() e$B7O$O$I$&$J$s$G$7$g$&$+$M!#e(B
e$B==J,$K0lHLE*$+$D%k!<%:$G$"$k$3$H$,4|BT$5$l$k$J$i$P!“e(B
e$BNc30$O=P$9$Y$-$G$O$J$$$G$7$g$&$7!“e(B
e$B$”$kDxEY87L)$G$”$k$3$H$,4|BT$5$l$k$J$i$P!"e(B
to_s e$B7O$G$J$/e(B to_str / to_int / to_ary
e$B$rMxMQ$9$k$Y$-$G$7$g$&!#e(B
e$B2]Bj$H$7$F=P$F$$$?e(B puts e$B$He(B print e$B$N<BAu$O!"e(B
puts nil #=> puts “”
print nil #=> print “”
e$B$KJQ99$9$k$Y$-$G$7$g$&!#e(B
e$BITMQ0U$Ke(B nil e$B$re(B puts e$B$KJ|$j9~$`$h$&$J%1!<%9$G!"e(B
nil e$B$+$I$&$+$r0U<1$7$?$$$H$O;W$o$J$$$H9M$($^$9!#e(B
e$B$^$H$a$k$H!"e(B
- nil e$B$O%(%i!<$r<($9CMe(B
- e$B%(%i!<$G;_$a$?$$$J$ie(B “nil” e$B$+Nc30e(B
- e$B%(%i!<$G$b?J$_$?$1$l$PNm85e(B
- to_s e$B7O$O%(%i!<$G$b?J$_$?$$e(B
- to_str e$B7O$O;_$a$?$$$+$Je(B
- String() e$B7O$O$I$A$i$@$m$&e(B # to_s e$B7O$+e(B to_str
e$B7O$+$K$"$o$;$k$Y$-e(B