[ruby-list:390] Re: bug report#3 and request#5

From:
Date: 1996-08-09 07:54:22 UTC
List: ruby-list #390
けいじゅ@SHLジャパンです. 

In [ruby-list :00384 ] the message: "[ruby-list:384] Re: bug report#3
and request#5 ", on Aug/07 18:51(JST) matz@caelum.co.jp (Yukihiro
Matsumoto) writes:

>対称性からはその方がよさそうですね.ただ,以前のドキュメント
>にあるような
>
>  lhs ',' [lhs ','..] ['*' lhs ] '=' expr [',' expr ..]
>
>ルールでは表現出来ないんですよね.

ですねえ.

>|でも, 多重代入はなかなか微妙な仕様ですね(^^;;

>|foo, = 1, 2, 3
>|は, foo == 1 
>|foo = [1, 2, 3]
>|は, foo == [1, 2, 3]

>そうです.左辺にコンマがあるものが多重代入です.あ,
>  *foo = 2
>にはコンマが無い….

これは, foo = [2]

になるわけですね....

さらに,

*foo = [2]

は, foo == [2]

ですね. さらに微妙だ....

>|>|2. Array#append
>そうですね.そういう説明で分かる人ばかりだと嬉しいのですが,
>なかなかそうも行きません.

Procの時にもそんな話しが出たような... 
#私は lambda が良かったんだが...

ところで, array#append(array2) ですが, いまさらいうと怒られるかも知れ
ませんが,

array.push(elm, *list) や array.push(*list)

でも良かったような気がします.

>|>|3. print File.stat("/etc")
>となるとStructの中身が見たいというのではなく,to_sの定義はか
>くあるべきという話でしょうか.

みたいですね.

>to_sというメソッドはもともとあるオブジェクトを*無理矢理*文字
>列にした結果を返すというメソッドです.で,人間に理解しやすい
>形式の文字列に変換するメソッドとしてinspectを別に用意してい
>るわけです.

>というわけでStructの文字列表現はStructの種別くらいで十分で,
>要素を見たければinspectを使ってくれ,というのが今までの考え
>なのでした.

>というわけで,Structのto_sによる文字列表現を変更する必然性を
>いまいち感じていないんですけど,なにか理由があるんですかね.
>ちなみにStructのメンバの並びはいつも一定です.

確かに, to_s などでどこまでの情報を文字列化するかは, 問題になるところ
なんですよね.

ただ, array や Hash では, 中身を表示するのだから Struct もあっても良い
と思うのは, それほど変ではないと思いますが...

># いや,printでそのままstatの結果が見れないというのは十分な
># 理由であるかも知れんなあ.

分かっているじゃないですか(^^;;

print File.stat("/etc")

とやって,

Struct Stat

と表示だけされると, ショックが大きいのでした. 

# print File.stat("/etc").inspect

などと, inspect を一々書くのもめんどくさいし... 

渡された, オブジェクトをinspect して表示する関数が用意されていれば, そ
れでも良いです. 例えば,

iprint array, hash, stat

とすると, それぞれ inspect して表示する関数ですね.

>|>|4. fail/rescue

これは別メイルで.

__
..........................................石塚 圭樹@SHLジャパン(株)...
------------->アドレス変わりました!! e-mail: keiju@shljapan.co.jp <----

In This Thread

Prev Next