From: keiju@... (ÀÐÄͷ½¼ù ) Date: 1996-08-09T16:54:22+09:00 Subject: [ruby-list:390] Re: bug report#3 and request#5 けいじゅ@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 <----