青山です。

On Tue, 28 Dec 1999 12:14:32 +0900,
matz / netlab.co.jp (Yukihiro Matsumoto) wrote:

>     (g) str.collect{|s|s}相当(現状)
>     (h) str が$/を含まないとき [str]、含むときstr.collect{|s|s}
>     (i) いつも [str]

>        to_a
>               オブジェクトを配列に変換します.普通に配列に変換できないよ
>               う なオブジェクトは自身を含む1要素の配列に変換されます.

という事で、マニュアルからすると (i) でも良さそうな気もします。文字列
を普通に配列に変換した物が、行単位の文字列とは言い切れない感じがします
ので。

string[n,m] というアクセスもありますから、バイト単位や、文字単位という
分割も有り得そうですし、ちょっと普通に配列に変換できるオブジェクトでは
無いように思えます。

しかし、利便性の為という事であれば、マニュアルに collect{|s|s} 相当、
あるいは、str が$/を... 等の記述を追加するならば、現状ままや、(h) でも
良いかもしれません。

-----
String に関しては素直に(?) string.split() や [string] と記述した方が良
いと思うので、to_a に関しては、マニュアルと挙動が合っていれば、まあ、
どのような動作でも良いような、と、ちょっと思いがいまいち。

そもそも、普通に配列化できない物は (i) という事は、そのような可能性の
あるオブジェクトは書く時にわかると思いますし、to_a など使わずに、
[object] と書けばいいような。

Kernel#to_a って、必要なんでしょうかね?


-- 
青山 和光 Wakou Aoyama <wakou / fsinet.or.jp>