Issue #4468 has been reported by Tomoyuki C…
Feature #4468: String() should call to_str before to_s
Author: Tomoyuki C.
Status: Open
Priority: Normal
Assignee:
Category: core
Target version: 1.9.3
Integer() と Array() というカーネルメソッドはまず to_int/to_ary という
「暗黙の変換」のためのメソッドを呼び、それが失敗すると to_i/to_a を
呼んで変換するという仕様になっています。
しかし String() は最初から to_s を呼ぶようになっています。
統一感という意味ではまず to_str → to_s の順に呼ぶことにしたほうが
良いのではないでしょうか。
to_str と to_s が異なる文字列を返すようなケースは思い浮ばないので、
実際にこれで結果が変化することはないのではないかと推測します。
Issue #4468 has been updated by Tomoyuki C…
パッチを貼り忘れていました。このようになるかと思います。
diff --git a/object.c b/object.c
index b25c0af…fad726c 100644
— a/object.c
+++ b/object.c
@@ -2360,7 +2360,10 @@ rb_num2dbl(VALUE val)
VALUE
rb_String(VALUE val)
{
- return rb_convert_type(val, T_STRING, “String”, “to_s”);
Feature #4468: String() should call to_str before to_s
Author: Tomoyuki C.
Status: Open
Priority: Normal
Assignee:
Category: core
Target version: 1.9.3
Integer() と Array() というカーネルメソッドはまず to_int/to_ary という
「暗黙の変換」のためのメソッドを呼び、それが失敗すると to_i/to_a を
呼んで変換するという仕様になっています。
しかし String() は最初から to_s を呼ぶようになっています。
統一感という意味ではまず to_str → to_s の順に呼ぶことにしたほうが
良いのではないでしょうか。
to_str と to_s が異なる文字列を返すようなケースは思い浮ばないので、
実際にこれで結果が変化することはないのではないかと推測します。
Issue #4468 has been updated by Yui NARUSE.
Status changed from Open to Assigned
Assignee set to Yukihiro M.
Feature #4468: String() should call to_str before to_s
Author: Tomoyuki C.
Status: Assigned
Priority: Normal
Assignee: Yukihiro M.
Category: core
Target version: 1.9.3
Integer() と Array() というカーネルメソッドはまず to_int/to_ary という
「暗黙の変換」のためのメソッドを呼び、それが失敗すると to_i/to_a を
呼んで変換するという仕様になっています。
しかし String() は最初から to_s を呼ぶようになっています。
統一感という意味ではまず to_str → to_s の順に呼ぶことにしたほうが
良いのではないでしょうか。
to_str と to_s が異なる文字列を返すようなケースは思い浮ばないので、
実際にこれで結果が変化することはないのではないかと推測します。
$B$^$D$b$H(B $B$f$-$R$m$G$9(B
$B$^$"$3$3$@$10c$C$F$$$k%a%j%C%H$b$5$[$I$J$$$h$&$G$9$+$i!"JQ99(B
$B$7$F$bNI$$$N$G$O$J$$$G$7$g$&$+!#(B
In message “Re: [ruby-dev:43306] [Ruby 1.9 - Feature #4468][Open]
String() should call to_str before to_s”
on Sat, 5 Mar 2011 21:43:18 +0900, Tomoyuki C.
[email protected] writes:
|
|
|Issue #4468 has been reported by Tomoyuki C…
|
|----------------------------------------
|Feature #4468: String() should call to_str before to_s
|Feature #4468: String() should call to_str before to_s - Ruby master - Ruby Issue Tracking System
|
|Author: Tomoyuki C.
|Status: Open
|Priority: Normal
|Assignee:
|Category: core
|Target version: 1.9.3
|
|
|Integer() $B$H(B Array() $B$H$$$&%+!<%M%k%a%=%C%I$O$^$:(B to_int/to_ary
$B$H$$$&(B
|$B!V0EL[$NJQ49!W$N$?$a$N%a%=%C%I$r8F$S!“$=$l$,<:GT$9$k$H(B to_i/to_a $B$r(B
|$B8F$s$GJQ49$9$k$H$$$&;EMM$K$J$C$F$$$^$9!#(B
|
|$B$7$+$7(B String() $B$O:G=i$+$i(B to_s $B$r8F$V$h$&$K$J$C$F$$$^$9!#(B
|$BE}0l46$H$$$&0UL#$G$O$^$:(B to_str → to_s $B$N=g$K8F$V$3$H$K$7$?$[$&$,(B
|$BNI$$$N$G$O$J$$$G$7$g$&$+!#(B
|to_str $B$H(B to_s $B$,0[$J$kJ8;zNs$rJV$9$h$&$J%1!<%9$O;W$$Ib$P$J$$$N$G!”(B
|$B<B:]$K$3$l$G7k2L$,JQ2=$9$k$3$H$O$J$$$N$G$O$J$$$+$H?dB,$7$^$9!#(B
|
|–
|http://redmine.ruby-lang.org
Issue #4468 has been updated by Tomoyuki C…
Status changed from Assigned to Closed
r31209 で変更しました。
Feature #4468: String() should call to_str before to_s
Author: Tomoyuki C.
Status: Closed
Priority: Normal
Assignee: Yukihiro M.
Category: core
Target version: 1.9.3
Integer() と Array() というカーネルメソッドはまず to_int/to_ary という
「暗黙の変換」のためのメソッドを呼び、それが失敗すると to_i/to_a を
呼んで変換するという仕様になっています。
しかし String() は最初から to_s を呼ぶようになっています。
統一感という意味ではまず to_str → to_s の順に呼ぶことにしたほうが
良いのではないでしょうか。
to_str と to_s が異なる文字列を返すようなケースは思い浮ばないので、
実際にこれで結果が変化することはないのではないかと推測します。
Issue #4468 has been updated by Tomoyuki C…
お返事ありがとうございます。
では変更してしまおうと思います。
Feature #4468: String() should call to_str before to_s
Author: Tomoyuki C.
Status: Assigned
Priority: Normal
Assignee: Yukihiro M.
Category: core
Target version: 1.9.3
Integer() と Array() というカーネルメソッドはまず to_int/to_ary という
「暗黙の変換」のためのメソッドを呼び、それが失敗すると to_i/to_a を
呼んで変換するという仕様になっています。
しかし String() は最初から to_s を呼ぶようになっています。
統一感という意味ではまず to_str → to_s の順に呼ぶことにしたほうが
良いのではないでしょうか。
to_str と to_s が異なる文字列を返すようなケースは思い浮ばないので、
実際にこれで結果が変化することはないのではないかと推測します。