Nil.to_s

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Yukihiro M. wrote:

e$B8e$O!“e(Bnil.to_s, nil.to_i, nil.to_fe$B$,$I$&$”$k$Y$-$+!"$G$9$h$M!#e(B
e$BCfB<0F$O>e5-$NDL$j$H$7$F!"$^$D$b$H0F$Oe(B

nil.to_s #=> “nil”
nil.to_i #=> NoMethodError
nil.to_f #=> NoMethodError

e$B$G$9!#M}M3$K$D$$$F$O$9$G$K=R$Y$^$7$?!#e(B

e$B$3$A$i$K;?@.$7$F$*$-$^$9!#e(B

soap4re$B$G$O0l2U=j!“e(BXMLe$B$NB0@-CM$H$7$Fe(Bnile$B$rEO$7$F$k%F%9%H$,$”$C$F!"$=$l$,e(B

foo.extraattr[“foo”] = nil
=>

e$B$H$J$C$F$^$7$?!#$3$3$G!"e(B

foo.extraattr[“foo”] = “”
=>

foo.extraattr[“foo”] = nil
=>

e$B$H$$$&;EMM$KJQ99$7$?$s$G$9$,!“e(Bnil.to_se$B$,Nc30$de(B"nil"e$B$@$C$?$i!”$b$&>/$7Aae(B
e$B$/$3$N;EMM%P%0$K5$IU$$$?$@$m$&$H!#$$$dNc30$,M-$jF@$J$$$3$H$O$o$+$j$^$9$,!#e(B

e$B$$$:$l$K$7$F$be(BActiveSupporte$B$,>e=q$-$7$F85$KLa$9$h$&$J5$$,$9$k!#e(B:-)
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.2.1 (Cygwin)

iQEVAwUBRPhYaR9L2jg5EEGlAQL8PQf/ZVdrM+Hcj4mIWmqckG/+oEel2/AWW/il
jcVmKPhRl+/q13yPMNJtuEN6va6paOYBWkLJwdgLUldO0M9KrFGsv9FWWphv5EII
qIRTHb9JPgIVQcrR1K69FSNB9gMMAenXYAcny+DmpiPptANIBjyCiIoKdkLJa7LQ
2eEtXR3icDob2HQI+352Zb+2Mj/THTeN8e4VEzjLrF32aHrVvwJfEMs81xI71nV2
BemuuRYK0CTj4CUWaMTYKXrLoBlKAlldEydhwmH9F1M7ntREdGTgRP9lJgKqm2vx
BQyG+rbnS5PRskFfwkemJTWB0r7YROMz8QHHP9SYNsGtjuWvy3GMxA==
=IiHO
-----END PGP SIGNATURE-----

e$B$3$s$K$A$O!"$J$+$`$ie(B(e$B$&e(B)e$B$G$9!#e(B

In message “[ruby-dev:29390] Re: nil.to_s”
on Sep.01,2006 23:46:52, [email protected] wrote:
| e$B!Ve(Bputse$B$NJ}$rJQ$($k!W$H$$$&$N$O!“$I$&$$$&Iw$KJQ$($k$3$H$rA[Dje(B
| e$B$7$F$$$k$s$G$7$g$&$M!#e(Bnil.to_se$B$re(B”“e$B$N$^$^$K$9$k$J$i!”!VJQ$($Je(B
| e$B$$!W$N$,0lHVNI$$$H;W$&$N$G$9$,!#e(B

e$BA0ED$5$s$,;d$HF1$80U8+$@$H$7$F!“e(B[ruby-dev:29384]e$B$K$b=q$$$?$he(B
e$B$&$K!“e(Bputse$B$K$$1$ke(Bnile$B$NFCJL07$$$r$d$a$k!"$H$$$&$3$H$G$9!#e(B
e$B$
$=$i$/$=$l$O!“e(Bnile$B$N>l9g$@$1e(B"nil"e$B$H$$$&J8;zNs$r=PNO$5$;$F$$e(B
e$B$?$3$H$r;X$9$N$@$H;W$$$^$9$,!”$=$l$r$;$:$KB>$N%*%V%8%'%/%H$He(B
e$BF1$8$/e(Brb_obj_as_string()e$B$KEO$9!”$D$^$je(Bto_se$B$N7k2L$G$”$ke(B"“e$B$,=Pe(B
e$BNO$5$l$k!”$H$$$&$3$H$G$9!#e(B

e$B$G$9$,!“$3$l$O!“e(Bnil.to_se$B$re(B"nil"e$B$KJQ$($kM}M3$N$R$H$D$,$=$NFCJLe(B
e$B07$$$K$”$k$H$$$&$3$H$@$+$i!”$G$"$C$F!"K\Ev$N$H$3$m$r8@$($P!"e(B
e$B$3$l$b$d$O$jJQ$($J$$$^$^$G$h$1$l$P$=$l$,L5Fq$G$7$g$&!#e(B

e$B$=$j$c!"2?$bJQ$($J$$$N$,L5Fq$K$O7h$^$C$F$^$9$,e(B…

| nile$B$H$$$&$N$O!V$J$s$G$b$J$$!W$3$H$r0UL#$9$k%%V%8%'%/%H$G!"e(B
| e$B?tCM$G$b?tCME
$J%%V%8%'%/%H$G$b$"$j$^$;$s$+$i!“e(B(to_ie$B$K$h$ke(B)
| e$B?tCM$X$NJQ49BP>]$G$”$k$H$$$&$N$OIT<+A3$J$3$H$@$H;W$$$^$9!#F1e(B
| e$BMM$Ke(Bnil.to_se$B$O!V$=$N%
%V%8%'%/%H$,$I$s$J$b$N$G$“$k$+!W$,$O$Ce(B
| e$B$-$jJ,$+$kJ8;zNs$G$”$k$Y$-$G!"$=$l$O6uJ8;zNs$G$O$J$/!“e(B"nil”
| e$B$H$$$&I=8=$G$O$J$$$+$H46$8$^$7$?!#e(B

to_se$B$N7k2L$,!V!X$=$N%%V%8%'%/%H$,$I$s$J$b$N$G$“$k$+!Y$,$O$Ce(B
e$B$-$jJ,$+$kJ8;zNs$G$”$k$Y$-!W$H$9$k$H!"e(Binspecte$B$H$N=;$_J,$1$O$Ie(B
e$B$&$J$k$N$G$7$g$&$+e(B?
e$B%j%U%!%l%s%9$K$h$l$P!"e(Bto_se$B$,!V%
%V%8%'%/%H$NJ8;zNsI=8=!W$G$“e(B
e$B$j!“e(Binspecte$B$,!V%%V%8%'%/%H$r?M4V$,FI$a$k7A<0$KJQ49$7$?J8;zNs!We(B
e$B$@$H$"$j$^$9$,!"e(Bto_se$B$,:#2s$^$D$b$H$5$s$,@bL@$5$l$?$h$&$JL\E
e(B
e$B$N$b$N$G$”$k$H$9$k$H!”$3$NFs$D$N%a%=%C%I$N0c$$$,$h$/$o$+$i$Je(B
e$B$/$J$C$F$7$^$$$^$9!#e(B

e$B$=$l$G$O!#e(B

e$B$3$s$K$A$O!"$J$+$`$ie(B(e$B$&e(B)e$B$G$9!#e(B

In message “[ruby-dev:29392] Re: String(nil)”
on Sep.02,2006 00:05:06, [email protected] wrote:
| e$B$H$J$k$H!“e(BString()e$B$K$D$$$F$O!”>/$J$/$H$b;d$HA0ED$/$s$N4V$G$Oe(B
| e$B$“$kDxEY$N9g0U$,$G$-$?!”$H$$$&$3$H$G!#e(B

String()e$B$K$D$$$F$O!"e(B[ruby-dev:29388]e$B$rFI$s$G9M$($?7k2L!"e(BTypeError
e$B$K$J$i$J$$$3$H$OG<F@$G$-$?$N$G!“e(Bnil.to_se$B$HF1$87k2L$H$J$k!”$Ge(B
e$B;d$bG<F@$G$-$^$9!#e(B

e$BM>7W$JNc$@$C$?e(B…

to_se$B!"e(Bto_ie$B!“e(Bto_fe$B$K4X$7$F$O!“8=>u!”=>A0$N4uK>$+$iJQ$o$j$O$”$je(B
e$B$^$;$s$N$G!"A0ED$5$s$HF1$8$K$J$j$^$9!#e(B

e$B$=$l$G$O!#e(B

e$B@.@%$G$9!#e(B

e$B$.$c$C!#e(B

nil.to_s e$B$K$D$$$F$G$9!#e(B

Ruby e$B$G$N%k!<%:$Je(B tips e$B$H$7$F!"e(B
e$B$=$NCM$,J8;zNs$+e(B nil e$B$+$o$+$i$J$$$H$-$Ke(B nil.to_s
e$B$r;H$&!“e(B
e$B$H$$$&$N$,$”$k$+$H;W$$$^$9!#e(B

e$BNc$($P!"0J2<$N$h$&$J46$8$G$9!#e(B

h = { :a => “hoge”, :b => “fuga” }
puts “a: %s, b: %s, c: %s” % [h[:a], h[:b], h[:c]]
puts h[:a].to_s + h[:b].to_s + h[:c].to_s

e$B$3$3$G$OK\Mhe(B h.fetch(:c, “”) e$B$H$7$?J}$,$$$$$N$G$7$g$&$,!“e(B
e$B$H$j$”$($:e(B to_s e$B$G$9$`J}$,3Z$G$9!#e(B

Yukihiro M. wrote:

nile$B$H$$$&$N$O!V$J$s$G$b$J$$!W$3$H$r0UL#$9$k%%V%8%’%/%H$G!"e(B
e$B?tCM$G$b?tCME
$J%%V%8%’%/%H$G$b$"$j$^$;$s$+$i!“e(B(to_ie$B$K$h$ke(B)
e$B?tCM$X$NJQ49BP>]$G$”$k$H$$$&$N$OIT<+A3$J$3$H$@$H;W$$$^$9!#F1e(B
e$BMM$Ke(Bnil.to_se$B$O!V$=$N%
%V%8%’%/%H$,$I$s$J$b$N$G$"$k$+!W$,$O$Ce(B
e$B$-$jJ,$+$kJ8;zNs$G$"$k$Y$-$G!"$=$l$O6uJ8;zNs$G$O$J$/!“e(B"nil”
e$B$H$$$&I=8=$G$O$J$$$+$H46$8$^$7$?!#e(B

nil e$BC1BN$N$3$H$@$19M$($?>l9g$O!"$=$l$,2?$+$o$+$k$HJXMx$G$9$M!#e(B
e$B$?$@!"$=$l$Oe(B inspect e$B$G$$$$5$$b$7$^$9!#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

string + nil.to_s == string
integer + nil.to_i == integer
float + nil.to_f == fload

e$B$r4|BT$7$?$$$N$Ge(B “”, 0, 0.0 e$B$,9%$_$G$9!#e(B

e$B$J$R$5$s$Ne(B [ruby-dev:29395] e$B$b0lM}$"$k$H$O;W$$$^$9$,!"e(B
to_s e$B$O%(%i!<C5$7$h$j$b%@%C%/%?%$%T%s%0MQ$@$H46$8$^$9!#e(B

e$B$^$D$b$He(B e$B$f$-$R$m$G$9e(B

In message “Re: [ruby-dev:29398] Re: nil.to_s”
on Sat, 2 Sep 2006 01:47:43 +0900, “NARUSE, Yui”
[email protected] writes:

|Ruby e$B$G$N%k!<%:$Je(B tips e$B$H$7$F!"e(B
|e$B$=$NCM$,J8;zNs$+e(B nil e$B$+$o$+$i$J$$$H$-$Ke(B nil.to_s e$B$r;H$&!“e(B
|e$B$H$$$&$N$,$”$k$+$H;W$$$^$9!#e(B

e$B$=$&$J$s$G$9$+!#e(B

|e$BNc$($P!"0J2<$N$h$&$J46$8$G$9!#e(B
|
| h = { :a => “hoge”, :b => “fuga” }
| puts “a: %s, b: %s, c: %s” % [h[:a], h[:b], h[:c]]
| puts h[:a].to_s + h[:b].to_s + h[:c].to_s
|
|e$B$3$3$G$OK\Mhe(B h.fetch(:c, “”) e$B$H$7$?J}$,$$$$$N$G$7$g$&$,!“e(B
|e$B$H$j$”$($:e(B to_s e$B$G$9$`J}$,3Z$G$9!#e(B

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

h.default=“”
puts h[:a]_s + h[:b]_s + h[:c]

|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$^$D$b$He(B e$B$f$-$R$me(B /:|)

e$B7k>k9@$G$9!#e(B

e$B8_49@-$NOCBj!#e(B
nil.to_se$B$,e(B"“e$B$G$”$k$3$H$r4|BT$9$k%i%$%V%i%je(B a.rb e$B$H!“e(B
nil.to_se$B$,e(B"nil"e$B$G$”$k$3$H$r4|BT$9$k%i%$%V%i%je(B b.rb
e$B$r!V6&B8!W$5$;$k$3$H$Oe(B
Rubye$B$G2DG=$G$7$g$&$+!#e(B

On Sat, 2 Sep 2006 00:56:03 +0900
Masatoshi SEKI [email protected] wrote:

e$B$=$&$O8@$C$F$b8_49@-$NJ}$,5$$K$J$k$H$$$&$N$,@5D>$J$H$3$m!E!#e(B


e$B7k>k9@e(B http://www.hyuki.com/
http://www.textfile.org/
In the beginning God created the heaven and the earth. (Genesis 1:1)

e$BA0ED$G$9!#e(B

Yukihiro M. wrote:

|Ruby e$B$G$N%k!<%:$Je(B tips e$B$H$7$F!"e(B
|e$B$=$NCM$,J8;zNs$+e(B nil e$B$+$o$+$i$J$$$H$-$Ke(B nil.to_s e$B$r;H$&!“e(B
|e$B$H$$$&$N$,$”$k$+$H;W$$$^$9!#e(B

e$B$=$&$J$s$G$9$+!#e(B

e$B;DG0$J$,$i;H$C$F$$$k?M$OB?$$$G$9!#e(B
e$B;d$b;H$C$F$$$k$H;W$$$^$9!#e(B

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

Hashe$B0J30$K$b0z?t$J$I$,e(Bnile$B$+$b$7$l$J$$;~$Ke(B

def foo(x)
… x.to_s …
end

e$B$H$9$k$h$&$J%1!<%9$,$"$j$^$9$h$M!#e(B

x || "“e$B$NJ}$,9%$^$7$$$H;W$$$^$9$,!”>e5-$N$h$&$J%3!<%I$bB?$$e(B
e$B$H;W$$$^$9!#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$d$O$j!"<B:]E*$K$O8_49@-$NLdBj$,Bg$-$$$H;W$$$^$9!#e(B
e$B$J$R$5$s$,=q$+$l$F$$$k$h$&$J%a%j%C%H$OG’$a$^$9$,!“Nc30$K$J$ke(B
e$B$o$1$G$O$J$$$N$G%(%i!<$N8!=P$O$=$s$J$K3Z$K$O$J$i$J$$e(B(e$B>e5-$Ne(B
e$B$h$&$J%k!<%:$J%3!<%I$r=q$/?M$O$?$V$s%F%9%H$b$”$^$j=q$+$J$$e(B)
e$B$H;W$$$^$9$7!"$=$l$J$i$P8_49@-$r<N$F$F$^$GJQ$($J$/$F$b$h$$e(B
e$B$N$G$O$J$$$+$H!#e(B

e$B9b66@,5A$G$9!#e(B

Shugo M. wrote:

Yukihiro M. wrote:

|Ruby e$B$G$N%k!<%:$Je(B tips e$B$H$7$F!"e(B
|e$B$=$NCM$,J8;zNs$+e(B nil e$B$+$o$+$i$J$$$H$-$Ke(B nil.to_s e$B$r;H$&!“e(B
|e$B$H$$$&$N$,$”$k$+$H;W$$$^$9!#e(B

e$B$=$&$J$s$G$9$+!#e(B

e$B;DG0$J$,$i;H$C$F$$$k?M$OB?$$$G$9!#e(B
e$B;d$b;H$C$F$$$k$H;W$$$^$9!#e(B

WEB+DB PRESS vol.32e$B$Ne(B145e$B%Z!<%8$G$b>R2p$5$l$F$^$9$M!#e(B

e$B$^$"!"<+J,$G=q$$$?$s$G$9$,!#e(B

e$B$H$3$m$G!“e(B”#{nil}"
e$B$be(B"nil"e$B$K$7$?$$!"$H$$$&$3$H$K$J$k$N$G$7$g$&$+!#e(B
e$B$=$l$OITJX$J5$$,$7$^$9!#$?$H$($P!"e(B

some_array.collect{ |value|

#{value}”
}

e$B$_$?$$$J$3$H$r$9$k>l9g!"$U$D$&$Oe(Bvaluee$B$,e(Bnile$B$N$H$-$Oe(B
"

"e$B$K$J$C$F$[$7$$$H;W$$$^$9!#e(B

e$B9b66@,5Ae(B([email protected])

fujiokae$B$G$9!#e(B

e$B$H$3$m$G!“e(B”#{nil}" e$B$be(B"nil"e$B$K$7$?$$!"$H$$$&$3$H$K$J$k$N$G$7$g$&$+!#e(B
e$B$=$l$OITJX$J5$$,$7$^$9!#$?$H$($P!"e(B

some_array.collect{ |value|

#{value}”
}

e$B$_$?$$$J$3$H$r$9$k>l9g!"$U$D$&$Oe(Bvaluee$B$,e(Bnile$B$N$H$-$Oe(B
"

"e$B$K$J$C$F$[$7$$$H;W$$$^$9!#e(B

e$B$.$g$(!<!#e(B"#{nil}"e$B$,e(B"nil"e$B$K$J$k$N$O$9$3$V$k:$$k!#e(B

2che$B$GH/8@$r$7$F$$$J$$$Ge(BMLe$B$GH/8@$7$F$[$7$$!#e(B

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

to_s.empty? - Google 検索

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

iPhone Repair Experts

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

e$B@DLZ$G$9!#$o$?$7$,Ez$($k$N$b$J$s$G$9$,e(B

In mail “[ruby-dev:29401] Re: nil.to_s”
Hiroshi Y. [email protected] wrote:

e$B7k>k9@$G$9!#e(B

e$B8_49@-$NOCBj!#e(B
nil.to_se$B$,e(B"“e$B$G$”$k$3$H$r4|BT$9$k%i%$%V%i%je(B a.rb e$B$H!“e(B
nil.to_se$B$,e(B"nil"e$B$G$”$k$3$H$r4|BT$9$k%i%$%V%i%je(B b.rb e$B$r!V6&B8!W$5$;$k$3$H$Oe(B
Rubye$B$G2DG=$G$7$g$&$+!#e(B

e$B8=>u$Ne(B Ruby e$B$G$O86B’$H$7$FL5M}$G$9!#e(B

e$B>-MhF~$k$+$b$7$l$J$$e(B class box e$B$@$+e(B selector namespace
e$B$@$+e(B
e$B$H$$$&;E3]$1$r;H$&$H$G$-$k$+$b!<!"$H$$$&$H$3$G$9$M!#e(B

e$B@DLZ$G$9!#e(B

nil.to_s e$B$Oe(B “” e$BGI$G;2@o$7$^$9!#e(B

In mail “[ruby-dev:29402] Re: nil.to_s”
Shugo M. [email protected] wrote:

e$BA0ED$G$9!#e(B

|Ruby e$B$G$N%k!<%:$Je(B tips e$B$H$7$F!"e(B
|e$B$=$NCM$,J8;zNs$+e(B nil e$B$+$o$+$i$J$$$H$-$Ke(B nil.to_s e$B$r;H$&!“e(B
|e$B$H$$$&$N$,$”$k$+$H;W$$$^$9!#e(B

e$B$=$&$J$s$G$9$+!#e(B

e$B;DG0$J$,$i;H$C$F$$$k?M$OB?$$$G$9!#e(B
e$B;d$b;H$C$F$$$k$H;W$$$^$9!#e(B

e$B$o$?$7$b0U<1E*$K;H$C$F$^$9!#!Ve(B||e$B!W$J$I$GCV$-49$($i$l$k$N$Oe(B
e$B$o$+$j$^$9$,!"e(Bto_s e$B$N$[$&$,%a%=%C%I%A%'!<%s$G=q$1$k$N$GJXMxe(B
e$B$@$75$;}$A$$$$$s$G$9!#A0$KLa$C$F3g8L$r$D$1$k$N$O$a$s$I$/$5$$$7e(B
e$B8+$K$/$$$G$9!#e(B

e$B$H$9$k$h$&$J%1!<%9$,$"$j$^$9$h$M!#e(B

x || "“e$B$NJ}$,9%$^$7$$$H;W$$$^$9$,!”>e5-$N$h$&$J%3!<%I$bB?$$e(B
e$B$H;W$$$^$9!#e(B

e$B$o$?$7$N=q$$$?!“<B:]$K;H$C$F$$$k%3!<%I$+$iC5$7$F$-$?Nc$@$He(B
e$B$3$s$J$N$,$”$j$^$7$?!#e(B

def format(m, template)
template.gsub(/%\w+/) {|key|
case key
when ‘%subject’
m.subject.to_s.strip
when ‘%from’
m.friendly_from.to_s.sub(/@.*/, ‘@…’).strip
when ‘%body’
Iconv.conv(@dest_encoding, (m.charset || ‘iso-2022-jp’),
m.body.to_s.strip)
else
raise ArgumentError, “unknown mail part name: #{key.inspect}”
end
}
end

e$B$3$N%a%=%C%I$Ne(B to_s e$B$OA4Ite(B nil e$B$,e(B “”
e$B$KJQ49$5$l$k$3$H$re(B
e$BA@$C$F;H$C$F$$$^$9!#e(B

e$B$G!"$o$?$7$N<gD%$H$7$F$O!"e(Bnil.to_s e$B$Oe(B “”
e$B$,$$$$$H;W$$$^$9!#e(B
e$BM}M3$O0J2<$Ne(B 3 e$BE@$G$9!#e(B

  1. e$B8_49@-$,$J$/$J$ke(B (e$B$7$+$b1F6A$,Bg$-$$e(B)

e$BBeBX$H$7$F<($5$l$?!Ve(B||e$B!W$r;H$&J}K!$J$I$O3Z$G$b5$;}$A$h$/$b$J$$!#e(B
3. e$B$^$D$b$H$5$s$N8@$&e(B
e$B!V!X$=$N%%V%8%'%/%H$,$I$s$J$b$N$G$“$k$+!Y$,$O$C$-$jJ,$+$kJ8;zNs!We(B
e$B$H$$$&$N$O!”$^$5$Ke(B inspect e$B$,2L$?$9$Y$-Lr3d$@$H;W$&e(B
(e$B$N$G!"e(Bto_s e$B$K$=$l$r5a$a$k$N$O$
$+$7$$e(B)e$B!#e(B

e$B$b$7e(B puts e$B$de(B printf e$B$G$NFCJL07$$$,$“$k$+$ie(B nil.to_s
e$B$Oe(B “nil”
e$B$K$9$Y$-$@$H$$$&$N$G$”$l$P!“$o$?$7$b!”$=$NFCJL07$$$N$[$&$r$`$7$me(B
e$B$d$a$k$Y$-$@$H;W$$$^$9!#$H$$$&$+!“$”$l$O@N$+$i7y$@$J$"$H;W$C$F$^e(B
e$B$7$?!#:#2s$N7o$K$O4X78$J$/FCJL07$$$O$d$a$A$c$$$^$7$g$&$H<gD%$7$^$9!#e(B

e$B$5$i$K!"$I$&$7$F$be(B nil.to_s == “” e$B$,$@$a$J$i<!A1$N:v$H$7$F!"e(B
nil.to_s e$B$rDj5A$7$J$$$3$H$r<gD%$7$^$9!#e(B

Object#to_s e$B$,Dj5A$5$l$F$$$k$+$ie(B nil.to_s
e$B$bI,MW!“$H$$$&<gD%$be(B
e$B$5$l$F$$$^$9$,!”$o$?$7$O$=$l$J$i$`$7$me(B Object#to_s
e$B$rGQ;_$9$Y$-e(B
e$B$@$H;W$$$^$9!#%G%P%C%0MQ$K$Oe(B inspect
e$B$,$“$l$P==J,$G$9$7!”$9$Y$F$Ne(B
e$B%*%V%8%'%/%H$,J8;zNs$KJQ49$G$-$k$H$$$&:,5r$O$J$$$H;W$$$^$9!#e(BRuby
1.9 e$B$Ge(B Object#to_a e$B$b>C$($?$s$G$9$+$i!"e(Bto_s
e$B$b>C$7$A$c$($P$$$$e(B
e$B$8$c$J$$$G$9$+!#e(B

e$B$^$D$b$He(B e$B$f$-$R$m$G$9e(B

In message “Re: [ruby-dev:29393] Re: nil.to_s”
on Sat, 2 Sep 2006 00:34:01 +0900, Shugo M. [email protected]
writes:

|[1, 2, 3].to_se$B$Oe(B"123"e$B$K$J$j$^$9$,!“!V$=$N%*%V%8%'%/%H$,$I$s$J$b$Ne(B
|e$B$G$”$k$+!W$Oe(B"123"e$B$+$i$OFI$_<h$l$^$;$s$h$M!#e(B

e$B$=$&$J$s$G$9$h!#$3$l$bJQ$($?$$!#e(B

|e$BB>$N%%V%8%'%/%H$G$be(Bto_se$B$N7k2L$+$i$O!V$=$N%%V%8%'%/%H$,$I$s$J$b$Ne(B
|e$B$G$“$k$+!W$O$O$C$-$j$7$J$$%1!<%9$,$”$k$N$G!"e(Bnile$B$@$1$rJQ$($kM}M3$He(B
|e$B$7$F$O<e$$$h$&$K;W$$$^$9!#e(B

e$B$$$d!“$b$H$b$H$”$^$j6/$$M}M3$O$J$$$s$G$9!#$?$@!"e(Bnile$B$K$I$s$Je(B
e$B0UL#$r;}$?$;$k$N$+L@3N2=$7$?$$$@$1$G!#e(B

e$B$^$D$b$He(B e$B$f$-$R$m$G$9e(B

In message “Re: [ruby-dev:29396] Re: nil.to_s”
on Sat, 2 Sep 2006 01:14:46 +0900, “U.Nakamura”
[email protected] writes:

|e$BA0ED$5$s$,;d$HF1$80U8+$@$H$7$F!“e(B[ruby-dev:29384]e$B$K$b=q$$$?$he(B
|e$B$&$K!“e(Bputse$B$K$$1$ke(Bnile$B$NFCJL07$$$r$d$a$k!"$H$$$&$3$H$G$9!#e(B
|e$B$
$=$i$/$=$l$O!“e(Bnile$B$N>l9g$@$1e(B"nil"e$B$H$$$&J8;zNs$r=PNO$5$;$F$$e(B
|e$B$?$3$H$r;X$9$N$@$H;W$$$^$9$,!”$=$l$r$;$:$KB>$N%*%V%8%'%/%H$He(B
|e$BF1$8$/e(Brb_obj_as_string()e$B$KEO$9!”$D$^$je(Bto_se$B$N7k2L$G$”$ke(B"“e$B$,=Pe(B
|e$BNO$5$l$k!”$H$$$&$3$H$G$9!#e(B
|
|e$B$G$9$,!“$3$l$O!“e(Bnil.to_se$B$re(B"nil"e$B$KJQ$($kM}M3$N$R$H$D$,$=$NFCJLe(B
|e$B07$$$K$”$k$H$$$&$3$H$@$+$i!”$G$"$C$F!"K\Ev$N$H$3$m$r8@$($P!"e(B
|e$B$3$l$b$d$O$jJQ$($J$$$^$^$G$h$1$l$P$=$l$,L5Fq$G$7$g$&!#e(B
|# e$B$=$j$c!"2?$bJQ$($J$$$N$,L5Fq$K$O7h$^$C$F$^$9$,e(B…

putse$B$,e(Bnile$B$r=PNO$7$J$$$N$O!“$”$-$i$+$KITJX$@$H;W$$$^$9!#;d$Ke(B
e$B$H$C$F$OE7Gi$K$+$1$kFbMF$G$O$J$$$N$G$9$,!#<B:]$N$H$3$m$O$=$&e(B
e$B$G$b$J$$$N$+$J!#e(B

|to_se$B$N7k2L$,!V!X$=$N%%V%8%'%/%H$,$I$s$J$b$N$G$“$k$+!Y$,$O$Ce(B
|e$B$-$jJ,$+$kJ8;zNs$G$”$k$Y$-!W$H$9$k$H!"e(Binspecte$B$H$N=;$_J,$1$O$Ie(B
|e$B$&$J$k$N$G$7$g$&$+e(B?
|e$B%j%U%!%l%s%9$K$h$l$P!"e(Bto_se$B$,!V%
%V%8%'%/%H$NJ8;zNsI=8=!W$G$“e(B
|e$B$j!“e(Binspecte$B$,!V%%V%8%'%/%H$r?M4V$,FI$a$k7A<0$KJQ49$7$?J8;zNs!We(B
|e$B$@$H$"$j$^$9$,!"e(Bto_se$B$,:#2s$^$D$b$H$5$s$,@bL@$5$l$?$h$&$JL\E
e(B
|e$B$N$b$N$G$”$k$H$9$k$H!”$3$NFs$D$N%a%=%C%I$N0c$$$,$h$/$o$+$i$Je(B
|e$B$/$J$C$F$7$^$$$^$9!#e(B

to_se$B$Oe(Bprinte$B$G!“e(Binspecte$B$Oe(Bpe$B$G;H$o$l$k!”$H$$$&$N$,$3$l$iFs$D$Ne(B
e$B%a%=%C%I$N0c$$$G$9!#5U$K8@$($P$=$l0J>e$NL@3N$J0c$$$ODj5A$5$le(B
e$B$F$$$J$$$o$1$G$9$M!#$G$9$+$i!V!X$=$N%*%V%8%'%/%H$,$I$s$J$b$Ne(B
e$B$G$“$k$+!Y$,$O$C$-$jJ,$+$kJ8;zNs$G$”$k$Y$-!W$H$$$&$N$O@dBP>re(B
e$B7o$G$O$“$j$^$;$s!#$?$@!“0lHLO@$H$7$FB>$N6hJL$G$-$J$$J8;zNsI=e(B
e$B8=$ONI$/$J$$e(B(e$B$N$G!”=>Mh$Ne(Bto_se$B$N$&$A$”$^$jK>$^$7$/$J$$$b$N$,e(B
e$B$"$C$?e(B(arraye$B$H$+e(Bhashe$B$H$+e(B))e$B$H$O;W$C$F$$$^$9!#e(B

e$B$3$l$i$N0c$$$r$I$&L@3N2=$9$k$+$G$9$,!“e(Binspecte$B$Oe(Btruncatee$B$9$ke(B
e$B$3$H$,$”$k$,!“e(Bto_se$B$O$7$J$$!”$H$+$+$J$"!#e(B

e$B5U$K!“6hJL$9$k$3$H$r=EMW;k$;$:!”=>Mh$N$^$^e(Bnil.to_se$B$O6uJ8;zNse(B
e$B$H$7$F$b9=$o$J$$$C$F8@$($P9=$o$J$$$s$G$9$,!“$=$N>l9g$K$O:#EYe(B
e$B$O!Ve(Bnile$B$N0UL#!W$KF’$_9~$`$3$H$K$J$j$^$9$M!#>-MhDj5A$5$l$&$ke(B
e$B$”$i$f$ke(Bto_xxxe$B$Oe(Bnile$B$+$iNm85$KJQ49$5$l$k$Y$-$@!"$H$+!)e(B
e$BD>6a$@e(B
e$B$He(Bcomplexe$B$de(Brationale$B$NAH$9~$$,M=Dj$5$l$F$^$9$h$M!#e(B

                            e$B$^$D$b$He(B e$B$f$-$R$me(B /:|)

e$BA0ED$G$9!#e(B

Yukihiro M. wrote:

putse$B$,e(Bnile$B$r=PNO$7$J$$$N$O!"$"$-$i$+$KITJX$@$H;W$$$^$9!#;d$Ke(B
e$B$H$C$F$OE7Gi$K$+$1$kFbMF$G$O$J$$$N$G$9$,!#<B:]$N$H$3$m$O$=$&e(B
e$B$G$b$J$$$N$+$J!#e(B

e$B$A$g$C$H:$$k%1!<%9$rA[A|$G$-$^$;$s$G$7$?!#e(B
nile$B$,e(B"nil"e$B$H=PNO$5$l$k$H!"$J$R$5$s$,=q$+$l$?$h$&$J%P%0$NH/8+$KLre(B
e$BN)$D%1!<%9$O$"$k$+$b$7$l$^$;$s$,!“e(BIO#writee$B$G$Oe(Bnile$B$rFCJL07$$$7$Fe(B
e$B$J$$$o$1$G$9$7!”$A$g$C$HCfESH>C<$J5$$,$7$^$9!#e(B

to_se$B$Oe(Bprinte$B$G!“e(Binspecte$B$Oe(Bpe$B$G;H$o$l$k!”$H$$$&$N$,$3$l$iFs$D$Ne(B
e$B%a%=%C%I$N0c$$$G$9!#5U$K8@$($P$=$l0J>e$NL@3N$J0c$$$ODj5A$5$le(B
e$B$F$$$J$$$o$1$G$9$M!#$G$9$+$i!V!X$=$N%*%V%8%’%/%H$,$I$s$J$b$Ne(B
e$B$G$"$k$+!Y$,$O$C$-$jJ,$+$kJ8;zNs$G$"$k$Y$-!W$H$$$&$N$O@dBP>re(B
e$B7o$G$O$"$j$^$;$s!#$?$@!“0lHLO@$H$7$FB>$N6hJL$G$-$J$$J8;zNsI=e(B
e$B8=$ONI$/$J$$e(B(e$B$N$G!”=>Mh$Ne(Bto_se$B$N$&$A$"$^$jK>$^$7$/$J$$$b$N$,e(B
e$B$"$C$?e(B(arraye$B$H$+e(Bhashe$B$H$+e(B))e$B$H$O;W$C$F$$$^$9!#e(B

to_se$B$K$O$=$&$$$&Lr3d$O4|BT$7$F$$$J$+$C$?$N$G!"$3$NOC$K$O$A$g$C$He(B
e$B6C$-$^$7$?!#e(B

e$B<+J,$,e(Bto_se$B$r=q$/;~$K$O!“e(Bprinte$B$de(Bwritee$B$G=PNO$9$k;~$K0lHVJXMx$=$&$Je(B
e$B7A<0$NJ8;zNs$rJV$9$h$&$K$7$F$$$^$7$?!#e(B
e$B$h$/e(BMaile$B%/%i%9$H$+$Ke(Bto_se$B$Ge(BRFC822e$B7A<0$NJ8;zNs2=$9$k5!G=$rIU$1$Fe(B
e$B$=$N$^$^%Q%$%W$Ge(Bsendmaile$B$Ke(Bprinte$B$7$FEj$2$?$j$9$k$s$G$9$,!”$3$&$$$&e(B
e$B;H$$J}$O$^$D$b$H$5$s$NA[Dj30$H$$$&$3$H$G$7$g$&$+!#e(B

e$B5U$K!“6hJL$9$k$3$H$r=EMW;k$;$:!”=>Mh$N$^$^e(Bnil.to_se$B$O6uJ8;zNse(B
e$B$H$7$F$b9=$o$J$$$C$F8@$($P9=$o$J$$$s$G$9$,!"$=$N>l9g$K$O:#EYe(B
e$B$O!Ve(Bnile$B$N0UL#!W$KF’$_9~$`$3$H$K$J$j$^$9$M!#>-MhDj5A$5$l$&$ke(B
e$B$"$i$f$ke(Bto_xxxe$B$Oe(Bnile$B$+$iNm85$KJQ49$5$l$k$Y$-$@!"$H$+!)e(B e$BD>6a$@e(B
e$B$He(Bcomplexe$B$de(Brationale$B$NAH$9~$$,M=Dj$5$l$F$^$9$h$M!#e(B

e$B2C$($F!"Nm85$KAjEv$9$k$b$N$,$J$$7?$KJQ49$9$k>l9g$O!"e(Bempty?e$B$,e(B
e$B??$rJV$9$h$&$J%*%V%8%’%/%H$KJQ49$9$k$3$H$K$7$F$O$I$&$G$7$g$&!#e(B

e$B$K$7!w$*$+$d$^$G$9!#e(B

At Sat, 2 Sep 2006 20:32:49 +0900,
Yukihiro M. wrote:

In message “Re: [ruby-dev:29393] Re: nil.to_s”
on Sat, 2 Sep 2006 00:34:01 +0900, Shugo M. [email protected] writes:

|[1, 2, 3].to_se$B$Oe(B"123"e$B$K$J$j$^$9$,!“!V$=$N%*%V%8%'%/%H$,$I$s$J$b$Ne(B
|e$B$G$”$k$+!W$Oe(B"123"e$B$+$i$OFI$_<h$l$^$;$s$h$M!#e(B

e$B$=$&$J$s$G$9$h!#$3$l$bJQ$($?$$!#e(B

Object#to_se$B$O!V$=$N%%V%8%'%/%H$,$I$s$J$b$N$G$“$k$+!W$,M_$7$$$s$8$c$Je(B
e$B$/$F!$$H$j$”$($:L5M}$+$i$G$bJ8;zNs$H$7$FI=8=$7$?$$;~$K;HMQ$9$k!$e(B
inspecte$B$O!V$=$N%
%V%8%'%/%H$,$I$s$J$b$N$G$"$k$+!W$rJ8;zNs$H$7$FM_$7$$e(B
e$B$H$-$K;HMQ$9$k!$$H$7$A$c$&$N$O$I$&$G$7$g$&!#e(B

e$B$H$$$&$+$=$&$$$&$b$s$@$H;d$O>!<j$KM}2r$7$F$^$7$?!#e(B

e$B$G!$L5M}LpM}I=8=$9$k$3$H$r9M$($?$i!$e(Bnil.to_se$B$O!$e(B"nil"e$B$H$$$&J8;zNs$G$“$ke(B
e$B$h$j$b!$!VJQ49$G$1$X$s$N$s$G6u$C$]$K$J$C$A$c$C$?$h!W$H$$$&0UL#$Ge(B”"e$B$N$[e(B
e$B$&$,$U$5$o$7$$$h$&$K;W$$$^$9!#e(B

e$B$=$&9M$($k$He(B nil.to_f e$B$J$I$N?tCM$X$NJQ497O$Oe(B NaN
e$B$rJV$9$N$b$"$j$+$b$7e(B
e$B$l$^$;$s!#e(B

e$B$$$:$l$K$;$h!$$+$J$j%I%i%9%F%#%C%/$JJQ99$G$9$N$G!$%a%8%c!<%P!<%8%g%s$Ge(B
e$B:NMQ$5$l$k:]$K$O!$2?$i$+$N0\9T%Q%9$,M_$7$$$H46$8$^$9!#e(B

$CONSERVATIVE_TO_S e$B$H$+$+$J$!e(B

e$B@.@%$G$9!#e(B

putse$B$,e(Bnile$B$r=PNO$7$J$$$N$O!“$”$-$i$+$KITJX$@$H;W$$$^$9!#;d$Ke(B
e$B$H$C$F$OE7Gi$K$+$1$kFbMF$G$O$J$$$N$G$9$,!#<B:]$N$H$3$m$O$=$&e(B
e$B$G$b$J$$$N$+$J!#e(B

e$B0lHLO@$H$7$FB>$N6hJL$G$-$J$$J8;zNsI=8=$ONI$/$J$$e(B

[ruby-dev:29148] e$B$N%9%l%C%I$G$Ne(B Time#to_s
e$B$N0UL#$,$h$&$d$/$o$+$C$Fe(B
e$B$-$?5$$,$7$^$9!#$^$D$b$H$5$s$Oe(B puts e$B$Ke(B p
e$B$h$j$bL$KM%$7$$%@%s%W$re(B
e$B4|BT$7$F$$$i$C$7$c$k$N$G$9$h$M!)e(B

e$B$=$&9M$($k$H!"e(Bto_s
e$B$K4X$9$k$^$D$b$H$5$s$N<gD%$N<q;]$,M}2r$G$-$=$&$G$9!#e(B

e$B$=$l$rA0Ds$K@0M}$7D>$9$He(B to_s e$B$K$D$$$F$O!"e(B

  • e$BL$KM%$7$$%@%s%We(B
  • e$B%(%i!<8!=Pe(B
  • e$B%(%i!<L5;ke(B
    e$B$H$$$&8_$$$KL7=b$9$kN)>l$,B8:_$9$k$N$G$7$g$&$+!#e(B

to_se$B$Oe(Bprinte$B$G!“e(Binspecte$B$Oe(Bpe$B$G;H$o$l$k!”$H$$$&$N$,$3$l$iFs$D$Ne(B
e$B%a%=%C%I$N0c$$$G$9!#5U$K8@$($P$=$l0J>e$NL@3N$J0c$$$ODj5A$5$le(B
e$B$F$$$J$$$o$1$G$9$M!#$G$9$+$i!V!X$=$N%*%V%8%'%/%H$,$I$s$J$b$Ne(B
e$B$G$“$k$+!Y$,$O$C$-$jJ,$+$kJ8;zNs$G$”$k$Y$-!W$H$$$&$N$O@dBP>re(B
e$B7o$G$O$“$j$^$;$s!#$?$@!“0lHLO@$H$7$FB>$N6hJL$G$-$J$$J8;zNsI=e(B
e$B8=$ONI$/$J$$e(B(e$B$N$G!”=>Mh$Ne(Bto_se$B$N$&$A$”$^$jK>$^$7$/$J$$$b$N$,e(B
e$B$"$C$?e(B(arraye$B$H$+e(Bhashe$B$H$+e(B))e$B$H$O;W$C$F$$$^$9!#e(B

to_se$B$K$O$=$&$$$&Lr3d$O4|BT$7$F$$$J$+$C$?$N$G!"$3$NOC$K$O$A$g$C$He(B
e$B6C$-$^$7$?!#e(B

e$B$o$?$7$be(B to_s
e$B$K$=$N$h$&$J%@%s%WE*$J0U?^$,$"$k$H$OCN$j$^$;$s$G$7$?!#e(B

e$B$5$F$$-!"e(Bputs / to_s
e$B$K6hJL$N5!G=$r;}$?$;$k$N$O2a>j$H46$8$^$9!#e(B
e$B6hJL$Oe(B p / inspect
e$B$,9T$&$Y$-$3$H$G!"8=>u$,;H$$$E$i$$$N$J$i$P!“e(B
e$B$3$A$i$r$b$C$H8+$d$9$/$9$k$[$&$,$h$$$+$H;W$$$^$9!#e(B
e$B$”$k%
%V%8%'%/%H$,2?<T$+8+$?$$$H$-!"e(Bp e$B$NJ}$,C;$$$G$9$7!#e(B

e$B$h$C$F!“0J2<$N$h$&$J=;$_J,$1$O$$$+$,$G$7$g$&!#e(B
:to_s
e$BJ8;zNs$K$7$?$H$-0lHVJXMx$J7A<0!#e(B
e$B$=$l$rJ8;zNs$K$7$?;~DL>o4|BT$5$l$k7A<0!#e(B
:inspect
e$B$=$l$,2?<T$G$”$k$+$o$+$j$d$9$$7A<0!#e(B
:to_yaml
e$B%@%s%W!#e(B

e$B$3$N$h$&$KDj5A$9$k$H!"Nc$($Pe(B Time e$B$N>l9g!“e(B
access_list = [ [ip_address, time], [ip_address, time], … ]
access_list.each{|item| puts ‘%s : %s’ % item }
e$B$H$7$?;~e(B “127.0.0.1 : 2006-07-27 16:16:33 +0900”
e$B$G$b%”%j$J5$$,$7$^$9!#e(B

puts [1,2] → “1,2”
puts :a=>1,:b=>2 → “a=>1,b=>2”

e$B$$$d!“$b$H$b$H$”$^$j6/$$M}M3$O$J$$$s$G$9!#$?$@!"e(Bnile$B$K$I$s$Je(B
e$B0UL#$r;}$?$;$k$N$+L@3N2=$7$?$$$@$1$G!#e(B

nil e$B$ONc30$N0l<o$@$H;W$C$F$$$^$9!#e(B
http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-dev/7999
e$B$r8+$k$H$b$H$b$He(B IndexError e$B$@$C$?$h$&$G$9$7!#e(B

e$B$“$/$^$G%(%i!<CM$G$”$j!“L5$H$$$&$h$j$b0-0U$N$3$b$C$?L5$@$1$l$I!“e(B
e$B6/@)E*$KJQ49$7$?>l9g$O!”!V$J$+$C$?$3$H$K$9$k!WNm85$K$J$k!”$H$+!#e(B

e$B>-MhDj5A$5$l$&$k$“$i$f$ke(Bto_xxxe$B$Oe(Bnile$B$+$iNm85$KJQ49$5$l$k$Y$-$@!”$H$+!)e(B
e$BD>6a$@$He(Bcomplexe$B$de(Brationale$B$NAH$9~$$,M=Dj$5$l$F$^$9$h$M!#e(B

to_x e$B$K$D$$$F$ONm85$K$5$l$k$Y$-$G$9$,!"e(Bto_xxx
e$B$K$D$$$F$O$o$+$j$^$;$s!#e(B

  • CLASS.new(nil) → e$BNc30e(B
  • nil.to_xxx → e$BNc30e(B ?
  • CLASS(nil) → e$BNm85e(B ?
  • nil.to_x → e$BNm85e(B
    e$B$H$j$"$($:%j%9%H$K$9$k$H$3$s$J46$8$G$7$g$&$+!#e(B

e$B4d7n$H?=$7$^$9!#e(B

06/09/02 e$B$Ke(B NISHI Takao[email protected] e$B$5$s$O=q$-$^$7$?e(B:

e$B$$$:$l$K$;$h!$$+$J$j%I%i%9%F%#%C%/$JJQ99$G$9$N$G!$%a%8%c!<%P!<%8%g%s$Ge(B
e$B:NMQ$5$l$k:]$K$O!$2?$i$+$N0\9T%Q%9$,M_$7$$$H46$8$^$9!#e(B

Ruby 1.6.xe$B$N:“$K$”$C$?e(Bshime$B$N$h$&$J;EAH$$,e(BRuby
1.8.xe$B$K$bM
$7$$$G$9!#e(B

Ruby 1.8.xe$B$G:#2s$Ne(Bnile$B$N07$$$N$h$&$JJQ99$r<B46$G$-$?$j!“e(B
Ruby 1.8.xe$B$Ge(BRippere$B$r;H$C$?$j$G$-$l$P$J$”$HLQA[$7$F$$$^$9!#e(B

e$B$=$s$J$3$H$G$Oe(B. e$B$b$H$b$He(B, to_se$B$Oe(BSmalltalke$B$Ne(Bprint it(printOn:)e$B$r85$K$Ge(B
e$B$-$F$$$?$O$:$J$N$Ge(B, (e$B$&$C$H$$7$/$J$$DxEY$Ke(B)e$B!X$=$N%%V%8%’%/%H$,$I$s$Je(B
e$B$b$N$G$"$k$+!Y$G$"$k$N$OBg86B’$G$"$C$?$O$:e(B.

e$B$=$&$@$C$?$s$G$9$+!#40A4$K8m2r$7$F$$$?$+$b!#$=$&$@$H$9$k$H!“e(B
String#to_s e$B$,!”$=$N$^$^e(B self
e$B$rJV$9$N$b$I$&$+$H$$$&5$$,$7$^$9!#e(B

e$B$^$D$b$He(B e$B$f$-$R$m$G$9e(B

In message “Re: [ruby-dev:29412] Re: nil.to_s”
on Sat, 2 Sep 2006 22:56:31 +0900, Shugo M. [email protected]
writes:

|e$B<+J,$,e(Bto_se$B$r=q$/;~$K$O!“e(Bprinte$B$de(Bwritee$B$G=PNO$9$k;~$K0lHVJXMx$=$&$Je(B
|e$B7A<0$NJ8;zNs$rJV$9$h$&$K$7$F$$$^$7$?!#e(B
|e$B$h$/e(BMaile$B%/%i%9$H$+$Ke(Bto_se$B$Ge(BRFC822e$B7A<0$NJ8;zNs2=$9$k5!G=$rIU$1$Fe(B
|e$B$=$N$^$^%Q%$%W$Ge(Bsendmaile$B$Ke(Bprinte$B$7$FEj$2$?$j$9$k$s$G$9$,!”$3$&$$$&e(B
|e$B;H$$J}$O$^$D$b$H$5$s$NA[Dj30$H$$$&$3$H$G$7$g$&$+!#e(B

e$B$=$s$J$3$H$O$J$$$G$9$M!#$&!<$s!“$=$l$r9M$($k$H!V!X$=$N%*%V%8%'e(B
e$B%/%H$,$I$s$J$b$N$G$”$k$+!Y$,$O$C$-$jJ,$+$kJ8;zNs$G$“$k$Y$-!We(B
e$B$H$$$&$N$O!”$H$F$b6/$9$.$G$9$M!#$3$NH/8@$,OC$r$d$d$3$7$/$7$?e(B
e$B$h$&$J$i$9$$$^$;$s!#e(B

to_se$B$O!Ve(Bprinte$B$de(Bwritee$B$G=PNO$9$k;~$K0lHVJXMx$=$&$J7A<0$NJ8;zNse(B
e$B$rJV$9!W$G$$$$$G$9!#$G!“!V$J$s$G$b$J$$!W$3$H$rL@<(E*$K<($9e(B
“nil"e$B$NJ}$,NI$$$H;W$C$?$s$G$9$1$I!”$=$&$G$b$J$$$N$+$J$”!#e(B

e$B$A$g$C$H7A@*ITMxe(B

|e$B2C$($F!"Nm85$KAjEv$9$k$b$N$,$J$$7?$KJQ49$9$k>l9g$O!"e(Bempty?e$B$,e(B
|e$B??$rJV$9$h$&$J%*%V%8%'%/%H$KJQ49$9$k$3$H$K$7$F$O$I$&$G$7$g$&!#e(B

e$B$(!<$H!"!VNm85$KAjEv$9$k$b$N$,$J$$!W$N$K!Ve(Bempty?e$B$,??$rJV$9!We(B
e$B$H$$$&$N$G;W$$$D$/$N$O%3%s%F%J7O$7$+$J$$$N$G$9$,!#$=$&$$$($P!"e(B
[]e$B$Oe(BArraye$B$NNm85$J$s$@$m$&$+!#e(B

                            e$B$^$D$b$He(B e$B$f$-$R$me(B /:|)