In message <20020212132234.D838.GGB03124 / nifty.ne.jp>
ggb03124 / nifty.ne.jp writes:

> * Strings クラスのだいたいのイメージ
> [ "key1=val1" , "key2=val2" , .. ]
> 
>   そこで、このクラスの中身を Array として出し入れしたり、Hash として出し
> 入れしたり、また、String(改行つきの文字列)として出し入れしたりするメソッ
> ドが考えられるのですが、それらのメソッドの名前として《Ruby らしい》名前
> というのはどのようなものでしょうか?。

....「Array として」とか「Hash として」っていうのがいまひとつイメージ
しにくいっていうか,いろいろ考えられなくもないから何を望んでるのかがわ
からないというかっていう話があるんですが....

    # s.is_a? Strings in the following
    s.to_array #=> ["key1=val1", "key2=val2"]
    s.to_assoc #=> [["key1", "val1"], ["key2", "val2"]]
    s.to_hash  #=> {"key1" => "val1", "key2" => "val2"}

とか,そういうことでいいんでしょうか? それでいいとして....


> などが候補にあがるのですが、設定するほうの名前が考えつきません。
> 
>  #to_ary=(v)
>   #to_a=(v)
>   #to_hash=(v)
>   #to_str=(v)
>   #to_a=(v)
> 
> では不自然ですよね?。

設定する方というのを考えるの自体が不自然っていうことありませんか?

    a = []
    a.content = [1, 2, 3]

とかいうのと同じ程度に.こういうのだと個人的にはとある表現から Strings
を作るメソッドと,Strings を merge するメソッドを作ると思います.

    # s1.is_a? Strings, s1.inspect == '["key1=val1", "key2=val2"]'
    s2 = Strings.from_array(["key3=val3", "key4=val4"])
    s = s1+s2

とか,なにかそんなの.Strings#initialize が型みて良きに計らうのでもい
いけど.

いちいち新しいオブジェクト作るのいやだったら update_by_array とか,な
んかそんなメソッドをいっぱい定義することになるんでしょうか.内容を完全
に置き換えるわけでもないのに代入にみえる方法をとるのは気持ち悪い.

# update っていうのも単なる追加にはあわない気がするけど.


>  「xxとして出し入れするメソッド」の「Ruby らしい名前」は、なにか適当
> なものはありますでしょうか?。

そういうわけで「....として見る」っていうのはやってもあんまり逆はやりま
せんね.私は.


-- 
柳川和久 @ 東大阪市 . 大阪府                              February 12, 2002
「こんな事もあろうかと,少し前に宿屋でパクっておいたのよ!」
「....こ,こんなことって,あのなあ....」