Nil.to_s

e$B$1$$$8$e!w$$$7$D$+$G$9e(B.

e$B=PCY$l$^$7$?$N$Ge(B. e$B$A$g$C$H$@$1e(B.

In [ruby-dev:29443] the message: “[ruby-dev:29443] Re: nil.to_s”, on
Sep/03 23:25(JST) Yukihiro M. writes:

e$B$^$D$b$He(B e$B$f$-$R$m$G$9e(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$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

e$B$3$^$k$J!<e(B. e$B$^$D$b$H$5$se(B. e$B$=$s$J$3$H$G$Oe(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$A$J$_$Ke(B, inspecte$B$Oe(BSmalltalke$B$Ne(Binspect it,

dumpe$B$Oe(BstoreOn:.

e$B$=$l$O$H$b$+$/e(B, nil.to_se$B$Oe(B nil e$B$H$9$k$H$7$F$$$^$9$,e(B,
e$B$5$i$K0lJb?J$s$Ge(B
# e$B$H$+e(B #nil e$B$0$i$$$NJ}$,$h$$$N$G$Oe(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$o$?$7$Oe(B, e$B$^$D$b$H0F$K;?@.$G$9e(B. e$B$H$$$&$+e(B,
e$B$d$C$H$=$&$$$&5$$K$J$C$?$N$+$Ce(B
e$B$F46$8$G$9$,e(B. e$B$A$J$_$Ke(B,
Array#to_se$B$O$b$C$HD>$7$F$[$7$$e(B.

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

e$BH?BPGI$7$+$$$J$$$G$9$+$i$M$'e(B… e$B$G$be(B,
e$BK\Ev$O;[email protected]$N?M$b7k9=B?$$$H;W$&e(B
e$B$s$G$9$,e(B…

e$B$H$O$$$(e(B,
e$B:#=5$O$:!<$HBg:e$K=PD%$J$N$G$"$^$j1~1g$O$G$-$=$&$b$J$$$G$9$,e(B(^^;;
e$B$H$$$&$3$H$Ge(B, e$B1"$J$,$i1~1g$7$F$$$^$9e(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$I!<$G$b$$$$$3$H$G$9$,e(B, e$B$=$N$H$*$j$G$7$g$&e(B.

[]+anArray == anArray , anArray+[] == anArray

e$B$G$9$+$ie(B.

__
---------------------------------------------------->> e$B@PDMe(B
e$B7=<ye(B <<—
---------------------------------->> e-mail: [email protected] <<—

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

Yukihiro M. wrote:

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$=$b$=$b1i;;;R$,Dj5A$5$l$F$J$$$h$&$J%/%i%9$rA[Dj$7$F$^$7$?!#e(B
e$B$H$$$&$+!"e(B

x = nil.to_xxx
assert_equal(true, (x.zero? rescue x.empty?))

e$B$_$?$$$J;EMM$NJ}$,$o$+$j$d$9$$$+$b$7$l$J$$$G$9$M!#e(B

e$B@PDM7=<ye(B wrote:

e$B$3$^$k$J!<e(B. e$B$^$D$b$H$5$se(B. e$B$=$s$J$3$H$G$Oe(B!!

e$B$$$$$H$3$m$@$C$?$N$K!#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$A$J$_$Ke(B, inspecte$B$Oe(BSmalltalke$B$Ne(Binspect it, dumpe$B$Oe(BstoreOn:.

e$B$=$l$O$H$b$+$/e(B, nil.to_se$B$Oe(B nil e$B$H$9$k$H$7$F$$$^$9$,e(B, e$B$5$i$K0lJb?J$s$Ge(B
# e$B$H$+e(B #nil e$B$0$i$$$NJ}$,$h$$$N$G$Oe(B?

Rubye$B$K$OB>$N8@8l$+$i7A<0$@$1<Z$j$F$$$k$1$I0UL#E*$KJQ<A$7$F$$$k8@e(B
e$B8lMWAG$OB>$K$b$"$j$^$9e(B(e$B$?$H$($Pe(BCLUe$B$+$i;}$C$FMh$?%V%m%C%/$H$+e(B)e$B$7!"e(B
e$B$=$l$,e(B(e$B>/$J$/$H$be(BRubye$B%f!<%6$+$i$Oe(B)e$B9NDjE*$K<u$1F~$l$i$l$FMh$?$o$1e(B
e$B$G$9$+$i!"e(BSmalltalke$B$H0c$C$F$?$C$FJL$K$$$$$s$8$c$J$$$+$H;W$$$^$9!#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$o$?$7$Oe(B, e$B$^$D$b$H0F$K;?@.$G$9e(B. e$B$H$$$&$+e(B, e$B$d$C$H$=$&$$$&5$$K$J$C$?$N$+$Ce(B
e$B$F46$8$G$9$,e(B. e$B$A$J$_$Ke(B, Array#to_se$B$O$b$C$HD>$7$F$[$7$$e(B.

e$B$=$l$J$ie(B10e$BG/A0$K$^$D$b$H$5$s$r@bF@$7$F$/$@$5$C$F$$$?$i!D$H8@$C$Fe(B
e$B$bA’$N$J$$$3$H$G$9$,!#e(B

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

In message “Re: [ruby-dev:29448] Re: nil.to_s”
on Mon, 4 Sep 2006 03:30:25 +0900, [email protected]
(e$B@PDM7=<ye(B) writes:

|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$A$J$_$Ke(B, inspecte$B$Oe(BSmalltalke$B$Ne(Binspect it, dumpe$B$Oe(BstoreOn:.

e$B$(!<$H!“1~1g$7$F$/$@$5$k$N$O$”$j$,$?$$$G$9$,!"e(BSmalltalke$B$H$Ne(B
e$BBP1~$G$Oe(B

to_s asString
inspect printString

e$B$G$O$J$$$+$H!#$3$3$G$:$l$k$H$+$J$j0c$C$F$-$A$c$$$^$9$h$M!#e(B

|e$BH?BPGI$7$+$$$J$$$G$9$+$i$M$'e(B… e$B$G$be(B, e$BK\Ev$O;[email protected]$N?M$b7k9=B?$$$H;W$&e(B
|e$B$s$G$9$,e(B…

e$B$I$&$G$7$g$&$+!#@PDM$5$s$,;?@.$7$F$/$@$5$C$?$3$H$G$^$9$^$9>/e(B
e$B?tGI$N7|G0$,A}$($?5$$,$7$^$7$?!"0-$$$1$Ie(B(e$B>P!#e(B

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

e$B?y1:$G$9!#e(B
e$B4{$K;~4|$r0o$7$F$$$k>e$K$A$g$C$H$:$l$?OC$G$9$,!#e(B

e$B8D?ME*$K$O@.@%$5$s$N=q$+$l$F$$$k!"e(B

In Message “[ruby-dev:29419] Re: nil.to_s”
[email protected],
“NARUSE, Yui” [email protected] said;
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$H8@$&%(%i!<CM$NOC$,8D?ME*$K$O0lHV$7$C$/$j$-$^$9!#e(B

e$B$?$@!“!V$J$s$K$b$J$$!W$H!V$J$s$G$b$J$$!W$O35G0E*$K$O$+$J$j0c$$$,$”$k$se(B
e$B$G$O$J$$$G$7$g$&$+!#e(Bnil
e$B$,!V$J$s$G$b$J$$!W$H$$$&$+!VL$Dj5Ae(B/e$BITL@!W$re(B
e$BI=$9$b$N$J$i!“e(B"nil”
e$B$H$$$&J8;zNs$rJV$9$h$j$b!"$$$C$=A4It$N%a%=%C%I$,e(B
e$B<:GT$9$k$h$&$K$7$F$*$/$N$,<+A3$K;W$($^$9!#e(B

e$B!D!D$G$b!"<B:]$=$&$J$C$?$iHs>o$K:$$k$N$G!"JQ99$K$OH?BP$J$N$G$9$1$l$I$b!#e(B

e$B3+H/Cf$K%P%0$N2DG=@-$r8+$D$1$?$j$9$k$K$O7k9=JXMx$=$&$G$O$"$j$^$9!#e(B

e$B%*%W%7%g%s%U%i%0$G@Z$jBX$o$k$HNI$$$N$+$b!#e(B

e$B$1$$$8$e!w$$$7$D$+$G$9e(B.

In [ruby-dev:29458] the message: “[ruby-dev:29458] Re: nil.to_s”, on
Sep/04 14:14(JST) Yukihiro M. writes:

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

inspect printString

e$B$G$O$J$$$+$H!#$3$3$G$:$l$k$H$+$J$j0c$C$F$-$A$c$$$^$9$h$M!#e(B

to_s == asString e$B$J$N$Oe(B e$B$=$N$H$*$j$G$9$,e(B,
e$B%G%U%)%k%H$N<BAu$Oe(B printOn:
e$B$G<B8=$5$l$F$$$^$9e(B. e$B$?$@$7e(B, Srtinge$B$H$+$Oe(B,
e$B0c$$$^$9$,e(B…

inspect e$B$Oe(B printString e$B$H$O0c$&$+$be(B, e$B<B:]$Oe(B printOn:
e$B$GJ8;z?t@)8B$r$De(B
e$B$1$?$b$N$G$9$N$Ge(B, inspecte$B$N$h$&$K:Y$+$$>pJs$O=P$F$-$^$;$se(B.

e$B$b$7$+$7$?$ie(B, Rubye$B$G$Oe(B, e$BJ8;zNs$X$NJQ49$He(B print
e$B$G=P$F$/$kJ8;zNs$,F1$8e(B
e$B%a%=%C%Ie(Bto_s e$B$rMQ$$$F$$$k$N$,e(B, e$BLdBj$J$N$+$be(B.

|e$BH?BPGI$7$+$$$J$$$G$9$+$i$M$'e(B… e$B$G$be(B, e$BK\Ev$O;[email protected]$N?M$b7k9=B?$$$H;W$&e(B
|e$B$s$G$9$,e(B…

e$B$I$&$G$7$g$&$+!#@PDM$5$s$,;?@.$7$F$/$@$5$C$?$3$H$G$^$9$^$9>/e(B
e$B?tGI$N7|G0$,A}$($?5$$,$7$^$7$?!"0-$$$1$Ie(B(e$B>P!#e(B

e$B<:Ni$J$Ce(B(^^;

__
---------------------------------------------------->> e$B@PDMe(B
e$B7=<ye(B <<—
---------------------------------->> e-mail: [email protected] <<—

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

In message “Re: [ruby-dev:29475] Re: nil.to_s”
on Tue, 5 Sep 2006 00:06:56 +0900, [email protected]
(e$B@PDM7=<ye(B) writes:

|> to_s asString
|> inspect printString
|>
|>e$B$G$O$J$$$+$H!#$3$3$G$:$l$k$H$+$J$j0c$C$F$-$A$c$$$^$9$h$M!#e(B
|
|to_s == asString e$B$J$N$Oe(B e$B$=$N$H$*$j$G$9$,e(B, e$B%G%U%)%k%H$N<BAu$Oe(B printOn:
|e$B$G<B8=$5$l$F$$$^$9e(B. e$B$?$@$7e(B, Srtinge$B$H$+$Oe(B, e$B0c$$$^$9$,e(B…

inspecte$B$N%G%U%)%k%H$be(Bto_se$B$G$9$h$s!#e(B

|e$B$b$7$+$7$?$ie(B, Rubye$B$G$Oe(B, e$BJ8;zNs$X$NJQ49$He(B print e$B$G=P$F$/$kJ8;zNs$,F1$8e(B
|e$B%a%=%C%Ie(Bto_s e$B$rMQ$$$F$$$k$N$,e(B, e$BLdBj$J$N$+$be(B.

e$B$(!<$H!"$5$i$K$b$&0l<oN`J8;zNsJQ49%a%=%C%I$rA}$d$;!"$H!)e(B
to_s, inspecte$B$@$1$G==J,$G$O$J$$$+$H;W$$$^$9$1$I!#e(B

e$B8zN($r9M$($k$He(BCommonLispe$B$Ne(Bprin1-to-stringe$B$N$h$&$Je(BIOe$B$,4pK$Ge(B
StringIOe$B$r;H$C$FJ8;zNs2=$9$k$h$&$Je(BAPIe$B$NJ}$,NI$+$C$?$N$+$b$7e(B
e$B$l$^$;$s!#$,!"$3$l$O:#$5$iJQ$($h$&$H$O;W$$$^$;$s!#e(B

evale$B$9$k$H85$KLa$;$ke(BdumpStringe$B$N$h$&$J$N$,M_$7$$$H;W$C$?$3$He(B
e$B$b$"$j$^$7$?$,!"7k6Ie(B(e$B;d<+?H$b4^$a$Fe(B)e$BC/$bI,MW$H$7$F$$$J$$$h$&e(B
e$B$G$9$7!#e(B

|>e$B$I$&$G$7$g$&$+!#@PDM$5$s$,;?@.$7$F$/$@$5$C$?$3$H$G$^$9$^$9>/e(B
|>e$B?tGI$N7|G0$,A}$($?5$$,$7$^$7$?!"0-$$$1$Ie(B(e$B>P!#e(B
|
|e$B<:Ni$J$Ce(B(^^;

e$B$8_$$!">/?tGI$N%!<%k%I%?%$%^!<$G$9$+$i!#e(B

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

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

Tatsuki S. wrote:

e$B6/@)E*$KJQ49$7$?>l9g$O!"!V$J$+$C$?$3$H$K$9$k!WNm85$K$J$k!"$H$+!#e(B

e$B$H8@$&%(%i!<CM$NOC$,8D?ME*$K$O0lHV$7$C$/$j$-$^$9!#e(B

e$B;?F1$"$j$,$H$&$4$6$$$^$9!J$)e(B

e$B$?$@!"!V$J$s$K$b$J$$!W$H!V$J$s$G$b$J$$!W$O35G0E*$K$O$+$J$j0c$$$,$"$k$se(B
e$B$G$O$J$$$G$7$g$&$+!#e(Bnil e$B$,!V$J$s$G$b$J$$!W$H$$$&$+!VL$Dj5Ae(B/e$BITL@!W$re(B
e$BI=$9$b$N$J$i!“e(B"nil” e$B$H$$$&J8;zNs$rJV$9$h$j$b!"$$$C$=A4It$N%a%=%C%I$,e(B
e$B<:GT$9$k$h$&$K$7$F$*$/$N$,<+A3$K;W$($^$9!#e(B

e$B8=:$Ne(B Ruby e$B$NAH$9~$%/%i%9$G!"e(Bnil
e$B$N0UL#$r$6$C$HD4$Y$F$
$^$7$?!#e(B

  • array[2…5] = nil (e$BG[Ns$NHO0O:o=|e(B)
  • print “hoge” e$B$NLa$jCMe(B (void)
  • hash[key] e$B$N$h$&$J!Ve(BIndexErrore$B!W$Ne(B nil
  • str.capitalize! e$B$N$h$&$J!VJQ99$J$7!W$Ne(B nil
  • IO#close e$B$N$h$&[email protected]!W$Ne(B nil
  • /a/=~‘B’ e$B$GJV$k!V<:GT!W$Ne(B nil
  • EOF e$B$KC#$7$?;~$Ne(B nil
  • IO#readlines e$B$N9T6h@Z$j;XDjEy!"%G%U%)%k%HCM$rMQ$$$k$3$H$r<($9e(B
    nil

e$B$A$g$C$H0U30$@$C$?$N$O!"e(BTypeError
e$B$KAjEv$9$k$b$N$,L5$$$3$H$H!“e(B
e$BL@$i$+$J!VL$Dj5Ae(B/e$BITL@!W$,L5$$$3$H$G$7$g$&$+!#e(B
Ruby e$B$,e(B e$BBeF~e(B = e$B@k8@e(B
e$B$G$”$k$3$H$N1F6A$J$N$G$9$+$M!#e(B

to_s e$B$O$=$b$=$be(B String e$B$G$J$$$b$N$re(B String
e$B$K$9$k$b$N$G$9$+$i!"e(B
String
e$B<+?H$N$h$&$J<+L@$N$b$N0J30$r$I$3$^$GJQ492DG=$+$ODxEY$NLdBj$G!“e(B
e$B$I$l$,<+A3$H$$$&$N$O$=$3$^$G$J$$$h$&$K46$8$^$9!#e(B
e$B$J$N$G!“A4$F$,e(B String
e$B$K$J$k!“J}$,!”?M9)E*$G$O$”$l$I0l4S@-$,$”$k$+$H!#e(B

e$B<+L@$J$b$N$rJQ49$9$k$?$a$Ke(B to_str e$B$,$"$j$^$9$Me(B

e$B$`$7$me(B to_s e$B$H$O2?$+!"$,LdBj$J$N$G$9$+$M!"e(B
Array#to_s e$B$de(B Hash#to_s e$B$N$3$H$b9M$($k$H!#e(B

Ruby e$B$Ne(B nil

e$B$r8+$F$$$k$H!"963L5!F0Bb$G$N%?%A%3%^$N8@MU$r;W$$=P$7$^$9!#e(B

e$B!V?@$Oe(B 0 e$B$H;w$F$$$k$N$G$O$J$$$+!#e(B

e$B!!%7%9%F%$r%7%9%F%$?$i$7$a$k$?$a$NB8:_$J$s$@$m$&!W$H$$$&e(B

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

e$B:#2s$NOC$K4XO"$7$F!“0c$&J}LL$+$i$N%”%W%m!<%A$J$N$G$9$,!"!"!"e(B

e$BDs0F!’!Ve(Bto_se$B$He(Binspecte$B$N;EMM5-=R$rF~$l49$($^$;$s$+!)!We(B

e$B:G=i$Ke(Brubye$B$r?($C$?;~$K46$8$?0cOB46$N0l$D$O!"e(Bnil, Array,
Hashe$B$J$I$Ge(Bto_s
e$B$N=PNO$,%j%U%!%l%s%9$Ne(Bto_se$B$N9`$K=q$+$l$F$$$k!V30ItI=8=7A<0e(B*1e$B!W$K$J$C$Fe(B
e$B$$$J$$$3$H$G$7$?!#e(B

e$BCm!’!V30ItI=8=7A<0!W$H$O!"$=$l$rI>2A$9$k$3$H$G85$N%%V%8%’%/%H$HEy2A$Je(B
e$B%
%V%8%’%/%H$r:n@.$G$-$kJ8;zNs$N$3$H$@$H9M$($F$$$^$9!#e(B

e$B!t%f!<%6Dj5A$N%/%i%9$K$b:nMQ$9$ke(BMarshalle$B%b%8%e!<%k0J30$G$O!"e(Binspecte$B$Ne(B
e$B!t=PNO$,0lHV$=$l$K6a$$$G$9$h$M!#e(B

e$B$3$NDs0F$G$"$l$P!"8_49@-$NJ];}$H>e5-$N0cOB46$N2r7h$,F1;~$K$G$-$=$&$J5$e(B
e$B$,$9$k$N$G$9$,!#e(B

------
|e$B?M"JOIe(B| e$B0BC#e(B e$B=_!w8D?M2s@~e(B
| <e$B=we(B> | Via Asahi-net
|e$B5m"K;be(B| [email protected]
------

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

e$B$H$j$"$($:$3$3$KIU$1$^$9!#e(B

In message “Re: [ruby-dev:29405] Re: nil.to_s”
on Sat, 2 Sep 2006 12:10:06 +0900, “NARUSE, Yui”
[email protected] writes:

|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$B3’$5$s$+$i$?$/$5$s$N0U8+$,D0$1$?$N$G$"$j$,$?$/;W$$$^$9!#@h=5e(B
e$B$Ne(B

nil.to_s => “nil”

e$B$H$$$&JQ990JMh!";?@.!“H?BPN>J}$+$i$$$m$$$m$J0U8+$r$$$?$@$-$^e(B
e$B$7$?e(B(e$B<g$KH?BP$+$Je(B)e$B!#$G!”$=$l$i$rF’$^$($F$$$m$$$m9M$($?$N$G$9e(B
e$B$,!"0J2<$N$h$&$K$7$h$&$H;W$$$^$9!#e(B

  • nil.to_se$B$Oe(B""e$B$KLa$9e(B

    e$B:,5re(B
    (1) to_se$B$Oe(Binspecte$B$H$O0c$&!#e(B
    (2) e$B$“$$$+$o$i$:e(Bnile$B$O!V$J$K$G$b$J$$!WB8:_$G$”$j!"$=$l8Ne(B
    e$B$Ke(Bto_se$B$,$J$K$rJV$9$N$b<+M3$@$H$$$^$@$K9M$($F$$$k$,!"e(B
    ““e$B0J30$N$b$N$rJV$9$N$G$”$l$P!“Nm85$H$O7hJL$9$k$H$$$&e(B
    e$B$3$H$G$”$j!“e(Bto_i, to_f, to_ae$B$J$I$rL$Dj5A$K$9$kI,MW$,e(B
    e$B$”$k!#$=$l$O$=$l$GL%NOE*$J5$$b$9$k$,!“F1;~$K0q$NF;$Ge(B
    e$B$b$”$k!#e(B
    (3) 1.9e$B$O8_49@-$K5$$r;H$o$J$$$H@k8@$7$F$$$k$b$N$N!”$3$se(B
    e$B$J:3:Y$JE@$GBg$-$JHs8_49@-$rF3F~$9$k$3$H$b$J$$$@$m$&!#e(B

  • String()e$B$J$I$N!V%/%i%9L>7OJQ49%a%=%C%I!W$Oe(Bnile$B$KBP$7$FNce(B
    e$B30$r=P$9!#e(B

    e$B:,5re(B
    (1)
    e$BEAE}E*$K!V%/%i%9L>7OJQ49%a%=%C%I!W$OBP1~$9$ke(Bto_xe$B%a%=%Ce(B
    e$B%I$h$j%A%'%C%/$,87$7$$$3$H$K$J$C$F$*$j!"%(%i!<L5;k$Ne(B
    e$BJ}8~$K;H$o$l$ke(Bnile$B$+$i$NJQ49$O;H$o$l$k$Y$-$G$J$$e(B

  • to_xe$B$KAjEv$9$k%a%=%C%I$rDs6!$9$k?tCM%/%i%9$Oe(Bnile$B$KBP$7$Fe(B
    e$B$=$N%<%m$rJV$9$Y$-!#$=$NB>$N%/%i%9e(B(Rubye$B$N:,8;E*%G!<%?9=e(B
    e$BB$$G$“$ke(BStringe$B$He(BArraye$B$r=|$/e(B)e$B$X$NJQ49%a%=%C%I$Oe(Bnile$B$KDj5Ae(B
    e$B$5$l$k$Y$-$G$O$J$$!#Nce(B:
    Rationale$B$O?tCM$G$”$je(Bto_re$B%a%=%C%Ie(B
    e$B$r;}$D$N$Ge(B(e$B$?$@$7!“$3$NL>A0$,K\Ev$K$h$$$N$+$O:F8!F$$,I,e(B
    e$BMWe(B)e$B!”>-Mhe(Bnil.to_re$B$,Dj5A$5$l$k2DG=@-$,9b$$!#$“$k$$$O!“e(B
    BigDecimale$B$O?tCM%/%i%9$G$”$k$,e(Bto_xe$B$KAjEv$9$k%a%=%C%I$r;}e(B
    e$B$?$J$$$N$Ge(Bnile$B$K%a%=%C%I$ODI2C$5$l$J$$!”$J$I!#e(B

    e$B:,5re(B
    (1)
    e$BL5@)8B$+$DL5Ca=x$Ke(Bnile$B$Ke(Bto_xe$B%a%=%C%I$,DI2C$5$l$k$3$He(B
    e$B$OHr$1$?$$e(B
    (2) e$B?tCM$K$O%<%m$,L@3N$KDj5A$5$l$F$$$k$3$H$,4|BT$5$l$k!#e(B
    (3) to_xe$B$KAjEv$9$k%a%=%C%I$,$J$1$l$P!"e(Bnile$B$KDI2C$9$k$3$He(B
    e$B$b$J$$e(B(e$BEvA3e(B)

e$B$"$H!"9M$($F$$$k$3$H$Oe(B

  • Array#to_se$B$He(BHash#to_se$B$O2?$rJV$9$Y$-$+e(B

    Perle$BM3Mh$N:#$N5sF0$O4r$7$$$3$H$,$J$K$R$H$D$J$$!#e(B
    Pythone$B$N$h$&$Ke(Binspect(repr)e$B$Ne(Baliase$B$K$9$Y$-e(B(e$B$+e(B)e$B!#e(B

  • e$B8=:_FCJL07$$$7$F$$$k!Ve(Bputs nile$B!W$H!Ve(Bputs
    arye$B!W$O$I$&?6$ke(B
    e$BIq$&$Y$-$+!#e(B

    e$BNc30$r8:$i$9$J$i$$$:$l$b0z?t$re(Bto_se$B$7$?$b$N$r=PNO$9$Y$-!#e(B
    e$B!VL$KM%$7$$e(Bdumpe$B!W$O$"$-$i$a$ke(B(e$B$=$s$J=EMW$8$c$J$$$7e(B)e$B!#e(B
    e$B!Ve(Bputs arye$B!W$O!Ve(Bputs *arye$B!W$GBeBX!#e(B

  • e$B!Ve(Bprint nile$B!W$H!Ve(Bprintf “%s”, nile$B!W$O!)e(B

    e$B8e<T$O!Ve(Bnile$B!W$rI=<($9$Y$-e(B(Ce$B$Ne(Bprintfe$B$G$b!Ve(B(null)e$B!W$,0u;ze(B
    e$B$5$l$ke(B)e$B!#A0<T$Oe(B…e$B$&!<$s!“$d$C$Q$j!Ve(Bnile$B!W$+$J$”!#e(B

e$B$3$NJU$O$^$@L$Dj$G$9!#e(B
e$B$^$D$b$He(B e$B$f$-$R$me(B /:|)

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

Yukihiro M. wrote:

e$B$=$l$O$=$l$H$7$Fe(BHEADe$B$G$Oe(BArray#to_se$B$He(BHash#to_se$B$,e(Binspecte$B$Ne(B
aliase$B$K$J$C$F$$$^$9!#$3$l$O0BC#$5$s$N4uK>$K6a$$$N$+$b$7$l$^e(B
e$B$;$s!#e(B

e$B$3$N<BAu$G!“e(B
% ./ruby -e’puts “\xe3\x81\x82”.to_s’
e$B$“e(B
% ./ruby -e’puts [”\xe3\x81\x82”].to_s’
["\343\201\202"]
e$B$H$J$k$N$O0U?^$7$?F0:n$G$7$g$&$+!#e(B

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

In message “Re: [ruby-dev:29540] Re: nil.to_s”
on Fri, 8 Sep 2006 23:52:48 +0900, NARUSE Yui [email protected]
writes:

|e$B$3$N<BAu$G!“e(B
|% ./ruby -e’puts “\xe3\x81\x82”.to_s’
|e$B$“e(B
|% ./ruby -e’puts [”\xe3\x81\x82”].to_s’
|[“\343\201\202”]
|e$B$H$J$k$N$O0U?^$7$?F0:n$G$7$g$&$+!#e(B

e$B$&!<$s!"$d$C$Q$j<jH4$-$O%@%a$+!#e(B

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

In message “Re: [ruby-dev:29534] Re: nil.to_s”
on Fri, 8 Sep 2006 22:13:03 +0900, Jun Adachi
[email protected] writes:

|e$BDs0F!'!Ve(Bto_se$B$He(Binspecte$B$N;EMM5-=R$rF~$l49$($^$;$s$+!)!We(B

e$BF~$l49$($k$H$$$&$N$O$I$&$J$s$G$7$g$&$M!#e(B

|e$B:G=i$Ke(Brubye$B$r?($C$?;~$K46$8$?0cOB46$N0l$D$O!"e(Bnil, Array, Hashe$B$J$I$Ge(Bto_s
|e$B$N=PNO$,%j%U%!%l%s%9$Ne(Bto_se$B$N9`$K=q$+$l$F$$$k!V30ItI=8=7A<0e(B1e$B!W$K$J$C$Fe(B
|e$B$$$J$$$3$H$G$7$?!#e(B
|
|e$BCm!'!V30ItI=8=7A<0!W$H$O!"$=$l$rI>2A$9$k$3$H$G85$N%
%V%8%‘%/%H$HEy2A$Je(B
| e$B%*%V%8%’%/%H$r:n@.$G$-$kJ8;zNs$N$3$H$@$H9M$($F$$$^$9!#e(B

Rubye$B$G$O!V30ItI=8=7A<0!W$rDs6!$7$F$$$^$;$s!#e(Binspecte$B$O6a$$$1e(B
e$B$I!“La$i$J$$%*%V%8%'%/%H$,$?$/$5$s$”$j$^$9$+$i!#e(B

|e$B!t%f!<%6Dj5A$N%/%i%9$K$b:nMQ$9$ke(BMarshalle$B%b%8%e!<%k0J30$G$O!“e(Binspecte$B$Ne(B
|e$B!t=PNO$,0lHV$=$l$K6a$$$G$9$h$M!#e(B
|
|e$B$3$NDs0F$G$”$l$P!"8_49@-$NJ];}$H>e5-$N0cOB46$N2r7h$,F1;~$K$G$-$=$&$J5$e(B
|e$B$,$9$k$N$G$9$,!#e(B

e$B!VF~$l49$($k!W$H5!G=$OJ]B8$5$l$^$9$,!"8_49@-$O0];}$G$-$J$$$se(B
e$B$8$c$J$$$G$7$g$&$+!#e(B

e$B$=$l$O$=$l$H$7$Fe(BHEADe$B$G$Oe(BArray#to_se$B$He(BHash#to_se$B$,e(Binspecte$B$Ne(B
aliase$B$K$J$C$F$$$^$9!#$3$l$O0BC#$5$s$N4uK>$K6a$$$N$+$b$7$l$^e(B
e$B$;$s!#e(B

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

In message “Re: [ruby-dev:29541] Re: nil.to_s”
on Sat, 9 Sep 2006 00:00:18 +0900, Yukihiro M.
[email protected] writes:

||e$B$3$N<BAu$G!“e(B
||% ./ruby -e’puts “\xe3\x81\x82”.to_s’
||e$B$“e(B
||% ./ruby -e’puts [”\xe3\x81\x82”].to_s’
||[“\343\201\202”]
||e$B$H$J$k$N$O0U?^$7$?F0:n$G$7$g$&$+!#e(B
|
|e$B$&!<$s!"$d$C$Q$j<jH4$-$O%@%a$+!#e(B

e$B$“!<!”$G$be(BPythone$B$b;w$?$h$&$J$b$s$@$J$“!#$I$&$7$h$&$+$J$”!#e(B

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

From: Yukihiro M. [email protected]
Subject: [ruby-dev:29536] Re: nil.to_s
Date: Fri, 8 Sep 2006 23:26:43 +0900

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

e$B$I$&$b!"$3$s$P$s$o$G$9!#e(B

Rubye$B$G$O!V30ItI=8=7A<0!W$rDs6!$7$F$$$^$;$s!#e(Binspecte$B$O6a$$$1e(B
e$B$I!“La$i$J$$%*%V%8%'%/%H$,$?$/$5$s$”$j$^$9$+$i!#e(B

e$B$&!<$!"3N$+$Ke(Bto_se$B$N9$r8+D>$7$?$i!VJ8;zNsI=8=7A<0!W$G$"$C$F!V30ItI=8=e(B
e$B7A<0!W$G$O$J$$$G$9$M!#e(B

e$B!tC1$J$k%A%c%A%cF~$l$K$J$C$F$7$^$C$?$h$&$G$9$s$^$;$s!#e(B

e$B$H$9$k$H;D$kLdBj$O!";EMM>ee(Bto_se$B$He(Binspecte$B$N0c$$$,$h$/$o$+$i$s$H$$$&$3$He(B
e$B$G$7$g$&$+!#e(B

e$B!te(Bto_se$B$O%G!<%?$N=hM}$KET9g$N$h$$J8;zNs!“e(Binspecte$B$O%*%V%8%'%/%H$N<1JL$Ke(B
e$B!tET9g$N$h$$J8;zNs!”$H$$$C$?$H$3$m$G$7$g$&$+!#e(B

------
|e$B?M"JOIe(B| e$B0BC#e(B e$B=_!w8D?M2s@~e(B
| <e$B=we(B> | Via Asahi-net
|e$B5m"K;be(B| [email protected]
------

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

In message “Re: [ruby-dev:29542] Re: nil.to_s”
on Sat, 9 Sep 2006 00:34:48 +0900, Yukihiro M.
[email protected] writes:

|||e$B$3$N<BAu$G!“e(B
|||% ./ruby -e’puts “\xe3\x81\x82”.to_s’
|||e$B$“e(B
|||% ./ruby -e’puts [”\xe3\x81\x82”].to_s’
|||[“\343\201\202”]
|||e$B$H$J$k$N$O0U?^$7$?F0:n$G$7$g$&$+!#e(B
||
||e$B$&!<$s!“$d$C$Q$j<jH4$-$O%@%a$+!#e(B
|
|e$B$”!<!“$G$be(BPythone$B$b;w$?$h$&$J$b$s$@$J$”!#$I$&$7$h$&$+$J$"!#e(B

e$B$3$N@h!“e(BM17Ne$B$G$^$H$a$FBP1~$9$k$3$H$K$7$^$7$?!#EvLL$O$3$l$G2fe(B
e$BK}$7$F$/$@$5$$!#E,@Z$Je(B$KCODEe$B$,;XDj$7$F$”$l$PLdBj$O$J$$$O$:$Ge(B
e$B$9!#e(B

e$B$J$+$@$G$9!#e(B

At Fri, 8 Sep 2006 01:01:06 +0900,
Yukihiro M. wrote in [ruby-dev:29520]:

  • Array#to_se$B$He(BHash#to_se$B$O2?$rJV$9$Y$-$+e(B

    Perle$BM3Mh$N:#$N5sF0$O4r$7$$$3$H$,$J$K$R$H$D$J$$!#e(B
    Pythone$B$N$h$&$Ke(Binspect(repr)e$B$Ne(Baliase$B$K$9$Y$-e(B(e$B$+e(B)e$B!#e(B

inspecte$B$h$j$O!"e(Bto_se$B$7$?$b$N$rE,Ev$J%;%Q%l!<%?$Ge(Bjoine$B$H$$$&$N$r4ue(B
e$BK>$7$^$9!#$D$^$j!“e(Binspecte$BF1MM:F5”$9$k$,!"MWAG$KBP$7$F$be(Binspect
e$B$G$O$J$/e(Bto_se$B$r;H$&$H$$$&$3$H$G$9!#e(Bto_se$B$K4|BT$5$l$kMWAG$O$d$O$je(B
to_se$B$5$l$?$b$N$G$O$J$$$+$H;W$&$N$G!#e(B

e$B$3$s$J46$8$G!#e(B

class Array
def to_s(sep = $, || ", ") join(sep) end
end

class Hash
def to_s(keysep = " => ", *rest)
collect {|elem| elem.to_s(keysep)}.to_s(*rest)
end
end

Index: array.c

RCS file: /cvs/ruby/src/ruby/array.c,v
retrieving revision 1.195
diff -p -u -2 -r1.195 array.c
— array.c 16 Sep 2006 02:24:58 -0000 1.195
+++ array.c 17 Sep 2006 03:14:32 -0000
@@ -1397,5 +1397,4 @@ inspect_ary(VALUE ary, VALUE dummy, int
/*

  • call-seq:
    • array.to_s -> string
      
    • array.inspect  -> string
      

@@ -1410,8 +1409,29 @@ rb_ary_inspect(VALUE ary)
}

+/*

    • call-seq:
    • array.to_s(sep=$,||", ") -> string
      
    • Returns a string created by converting each element of the array to
    • a string, separated by sep.
    • [ "a", "b", "c" ].to_s        #=> "a, b, c"
      
    • [ "a", "b", "c" ].to_s("-")   #=> "a-b-c"
      
    • $, = "/"
      
    • [ "a", "b", "c" ].to_s        #=> "a/b/c"
      
  • */

VALUE
-rb_ary_to_s(VALUE ary)
+rb_ary_to_s(int argc, VALUE *argv, VALUE ary)
{

  • return rb_ary_inspect(ary);
  • VALUE sep;
  • rb_scan_args(argc, argv, “01”, &sep);
  • if (NIL_P(sep)) sep = rb_output_fs;
  • if (NIL_P(sep)) sep = rb_str_new2(", ");
  • return rb_ary_join(ary, sep);
    }

@@ -2953,5 +2973,5 @@ Init_Array(void)
rb_define_method(rb_cArray, “initialize_copy”, rb_ary_replace, 1);

  • rb_define_method(rb_cArray, “to_s”, rb_ary_inspect, 0);
  • rb_define_method(rb_cArray, “to_s”, rb_ary_to_s, -1);
    rb_define_method(rb_cArray, “inspect”, rb_ary_inspect, 0);
    rb_define_method(rb_cArray, “to_a”, rb_ary_to_a, 0);
    Index: hash.c
    ===================================================================
    RCS file: /cvs/ruby/src/ruby/hash.c,v
    retrieving revision 1.170
    diff -p -u -2 -r1.170 hash.c
    — hash.c 13 Sep 2006 08:10:28 -0000 1.170
    +++ hash.c 17 Sep 2006 03:31:12 -0000
    @@ -1123,9 +1123,7 @@ inspect_i(VALUE key, VALUE value, VALUE
    str2 = rb_inspect(key);
    rb_str_buf_append(str, str2);
  • OBJ_INFECT(str, str2);
    rb_str_buf_cat2(str, “=>”);
    str2 = rb_inspect(value);
    rb_str_buf_append(str, str2);

  • OBJ_INFECT(str, str2);

    return ST_CONTINUE;
    @@ -1148,11 +1146,10 @@ inspect_hash(VALUE hash, VALUE dummy, in
    /*

  • call-seq:
    • hsh.to_s => string
    • hsh.inspect => string
    • Return the contents of this hash as a string.
    • h = { "c" => 300, "a" => 100, "d" => 400, "c" => 300  }
      
    • h.to_s   #=> "{\"a\"=>100, \"c\"=>300, \"d\"=>400}"
      
    • h.inspect   #=> "{\"a\"=>100, \"c\"=>300, \"d\"=>400}"
      
    */

@@ -1165,4 +1162,69 @@ rb_hash_inspect(VALUE hash)
}

+struct hash_to_s_arg {

  • VALUE str, pair, elem;
    +};

+static int
+to_s_i(VALUE key, VALUE value, VALUE argp)
+{

  • struct hash_to_s_arg *arg = (struct hash_to_s_arg *)argp;
  • VALUE str = arg->str;
  • VALUE pairsep = arg->pair;
  • VALUE elemsep = arg->elem;
  • if ((VALUE)key == Qundef) return (int)ST_CONTINUE;
  • if (NIL_P(str)) {
  • }
  • else if (RSTRING_LEN(str) > 1) {
  • if (NIL_P(arg->elem)) arg->elem = rb_str_new2(", ");
  • rb_str_buf_append(str, arg->elem);
  • }
  • rb_str_buf_append(str, rb_obj_as_string((VALUE)key));
  • if (NIL_P(arg->pair)) arg->pair = rb_str_new2("=>");
  • rb_str_buf_append(str, arg->pair);
  • rb_str_buf_append(str, rb_obj_as_string((VALUE)value));
  • return ST_CONTINUE;
    +}

+static VALUE
+to_s_hash(VALUE hash, VALUE argp, int recur)
+{

  • VALUE str = ((struct hash_to_s_arg *)argp)->str;
  • if (recur) return rb_str_new2("{…}");
  • rb_hash_foreach(hash, to_s_i, argp);
  • OBJ_INFECT(str, hash);
  • return str;
    +}

+/*

    • call-seq:
    • hsh.to_s(pairsep="=>", elemsep=$,) => string
    • Return the contents of this hash as a string.
    • h = { "c" => 300, "a" => 100, "d" => 400, "c" => 300  }
      
    • h.to_s   #=> "{a=>100, c=>300, d=>400}"
      
  • */

+static VALUE
+rb_hash_to_s(int argc, VALUE *argv, VALUE hash)
+{

  • struct hash_to_s_arg args;
  • args.str = rb_str_new(0, 0);
  • if (RHASH(hash)->tbl == 0 || RHASH(hash)->tbl->num_entries == 0)
  • return args.str;
  • rb_scan_args(argc, argv, “02”, &args.pair, &args.elem);
  • if (NIL_P(args.elem)) args.elem = rb_output_fs;
  • if (!NIL_P(args.pair)) StringValue(args.pair);
  • if (!NIL_P(args.elem)) StringValue(args.elem);
  • return rb_exec_recursive(to_s_hash, hash, (VALUE)&args);
    +}

/*

  • call-seq:
    @@ -2326,5 +2388,5 @@ Init_Hash(void)
    rb_define_method(rb_cHash,“to_hash”, rb_hash_to_hash, 0);
    rb_define_method(rb_cHash,“to_a”, rb_hash_to_a, 0);
  • rb_define_method(rb_cHash,“to_s”, rb_hash_inspect, 0);
  • rb_define_method(rb_cHash,“to_s”, rb_hash_to_s, -1);
    rb_define_method(rb_cHash,“inspect”, rb_hash_inspect, 0);

Index: intern.h

RCS file: /cvs/ruby/src/ruby/intern.h,v
retrieving revision 1.200
diff -p -u -2 -r1.200 intern.h
— intern.h 14 Sep 2006 07:27:14 -0000 1.200
+++ intern.h 17 Sep 2006 03:15:26 -0000
@@ -47,5 +47,5 @@ void rb_ary_store(VALUE, long, VALUE);
VALUE rb_ary_dup(VALUE);
VALUE rb_ary_to_ary(VALUE);
-VALUE rb_ary_to_s(VALUE);
+VALUE rb_ary_to_s(int, VALUE*, VALUE);
VALUE rb_ary_push(VALUE, VALUE);
VALUE rb_ary_pop(VALUE);

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

In message “Re: [ruby-dev:29585] Re: nil.to_s”
on Sun, 17 Sep 2006 13:54:25 +0900, Nobuyoshi N.
[email protected] writes:

|> * Array#to_se$B$He(BHash#to_se$B$O2?$rJV$9$Y$-$+e(B
|>
|> Perle$BM3Mh$N:#$N5sF0$O4r$7$$$3$H$,$J$K$R$H$D$J$$!#e(B
|> Pythone$B$N$h$&$Ke(Binspect(repr)e$B$Ne(Baliase$B$K$9$Y$-e(B(e$B$+e(B)e$B!#e(B
|
|inspecte$B$h$j$O!"e(Bto_se$B$7$?$b$N$rE,Ev$J%;%Q%l!<%?$Ge(Bjoine$B$H$$$&$N$r4ue(B
|e$BK>$7$^$9!#$D$^$j!“e(Binspecte$BF1MM:F5”$9$k$,!"MWAG$KBP$7$F$be(Binspect
|e$B$G$O$J$/e(Bto_se$B$r;H$&$H$$$&$3$H$G$9!#e(Bto_se$B$K4|BT$5$l$kMWAG$O$d$O$je(B
|to_se$B$5$l$?$b$N$G$O$J$$$+$H;W$&$N$G!#e(B

e$B$=$&$9$k$H!"e(B

[“foo”, “bar”]

e$B$Oe(B

“foo, bar”

e$B$K$J$k$H$$$&$3$H$G$7$g$&$+!#:#$N$h$j$O%^%7$@$H$O;W$$$^$9$,!“e(B
e$B$=$l$,$I$N$/$i$$4r$7$$$+$J$”!#%/%*!<%H$b%(%9%1!<%W$b$J$$$o$1e(B
e$B$G$9$+$i!"e(B

[“foo, bar, baz”, “quux”].to_s

e$B$,e(B

“foo, bar, baz, quux”

e$B$H$+!"e(B

[1,[2,3],4].to_s

e$B$,e(B

1, 2, 3, 4

e$B$H$$$&$N$bHyL/!#e(B

e$B$J$+$@$G$9!#e(B

At Fri, 8 Sep 2006 01:01:06 +0900,
Yukihiro M. wrote in [ruby-dev:29520]:

e$B$"$H!"9M$($F$$$k$3$H$Oe(B

e$B$b$&$R$H$D!#e(B

  • e$B8=:_FCJL07$$$7$F$$$k!Ve(Bputs nile$B!W$H!Ve(Bputs arye$B!W$O$I$&?6$ke(B
    e$BIq$&$Y$-$+!#e(B

    e$BNc30$r8:$i$9$J$i$$$:$l$b0z?t$re(Bto_se$B$7$?$b$N$r=PNO$9$Y$-!#e(B
    e$B!VL$KM%$7$$e(Bdumpe$B!W$O$"$-$i$a$ke(B(e$B$=$s$J=EMW$8$c$J$$$7e(B)e$B!#e(B
    e$B!Ve(Bputs arye$B!W$O!Ve(Bputs *arye$B!W$GBeBX!#e(B

IO#putse$B$OJQ99$5$l$?$h$&$G$9$,!"e(BIO#printe$B$,0JA0$N$^$^$G$9!#e(B

print *a

e$B$Ge(Bae$B$,6u$N$H$-$Ke(Bnile$B$H=PNO$5$l$k$N$O$"$^$j$&$l$7$/$J$$$G$9!#e(B

Index: io.c

RCS file: /cvs/ruby/src/ruby/io.c,v
retrieving revision 1.418
diff -p -U 2 -r1.418 io.c
— io.c 2 Sep 2006 14:42:06 -0000 1.418
+++ io.c 17 Sep 2006 04:49:43 -0000
@@ -3690,17 +3690,10 @@ rb_io_print(int argc, VALUE *argv, VALUE
}
for (i=0; i<argc; i++) {

  • if (!NIL_P(rb_output_fs) && i>0) {
  • rb_io_write(out, argv[i]);
  • if (!NIL_P(rb_output_fs)) {
    rb_io_write(out, rb_output_fs);
    }
  • switch (TYPE(argv[i])) {
  • case T_NIL:
    
  •   rb_io_write(out, rb_str_new2("nil"));
    
  •   break;
    
  • default:
    
  •   rb_io_write(out, argv[i]);
    
  •   break;
    
  • }
    }
  • if (!NIL_P(rb_output_rs)) {
  • if (argc > 0 && !NIL_P(rb_output_rs)) {
    rb_io_write(out, rb_output_rs);
    }

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

In message “Re: [ruby-dev:29586] Re: nil.to_s”
on Sun, 17 Sep 2006 13:54:56 +0900, Nobuyoshi N.
[email protected] writes:

|> * e$B8=:_FCJL07$$$7$F$$$k!Ve(Bputs nile$B!W$H!Ve(Bputs arye$B!W$O$I$&?6$ke(B
|> e$BIq$&$Y$-$+!#e(B
|>
|> e$BNc30$r8:$i$9$J$i$$$:$l$b0z?t$re(Bto_se$B$7$?$b$N$r=PNO$9$Y$-!#e(B
|> e$B!VL$KM%$7$$e(Bdumpe$B!W$O$"$-$i$a$ke(B(e$B$=$s$J=EMW$8$c$J$$$7e(B)e$B!#e(B
|> e$B!Ve(Bputs arye$B!W$O!Ve(Bputs *arye$B!W$GBeBX!#e(B
|
|IO#putse$B$OJQ99$5$l$?$h$&$G$9$,!“e(BIO#printe$B$,0JA0$N$^$^$G$9!#e(B
|
| print *a
|
|e$B$Ge(Bae$B$,6u$N$H$-$Ke(Bnile$B$H=PNO$5$l$k$N$O$”$^$j$&$l$7$/$J$$$G$9!#e(B

e$B%3%_%C%H$7$F$/$@$5$$!#e(B