[#380] bug report#3 and request#5 — keiju@... (Keiju ISHITSUKA)
けいじゅ@SHLジャパンです.
1 message
1996/08/06
[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 <----