From: "D.Kanda" Date: 1999-02-23T01:33:45+09:00 Subject: [ruby-dev:5488] def class#method (Re: Bigfloat [compare to NaN]) かんだです。 EGUCHI Osamu さんの書かれた、 「[ruby-dev:5478] Re: Bigfloat [compare to NaN]」 からの引用です。 > えぐち@エスアンドイー です。 > > >>> In message [ruby-dev:5450] Re: Bigfloat [compare to NaN] > On Mon, 22 Feb 1999 15:27:10 +0900, matz@netlab.co.jp (Yukihiro Matsumoto) said: > > matz> まつもと ゆきひろです > matz> > matz> In message "[ruby-dev:5441] Re: Bigfloat [compare to NaN]" > matz> on 99/02/22, Daisuke Kanda writes: > matz> > matz> | ちょっと思ったんですけど、インスタンスメソッドの定義に # 使えないかな。 > matz> | > matz> | def String#length() > matz> | end > matz> | > matz> | パーザ読んでないですけど、ちょっと手を加えるくらいでできそうだし。 > matz> | 問題は使うかどうか(^^; 再定義とかには便利かなー。 > matz> > matz> 実装としては(やや面倒ですが)不可能ではないです.後は,クラス > matz> 定義と完全に分離したメソッド定義の心理的効果の検証でしょうか. > matz> # 私としてはあんまり分離して欲しくないのですが. > > 『分離して欲しくない』に同感です。 あ、早く進めすぎましたね(__) 分離の方は先のフォローでどうかな? > 今回の曖昧さは、コメントとの間に生じるので、 > うまく捕捉できず、一見正しく解釈している風の動作を > しそうなので、なにか悪い予感がします。^^;;;;;; あ、そうそう、コメントとの誤動作というのはあとで考えようと思って結局 措いたままにしてました(^^; def Class#method ... end の # をコメントとして書きたい場合というのは、つまり def Class ... end という意味にしたいということですよね。 クラス名と同じ名前のメソッドを作るときに問題アリか…。 初期化メソッドに使われていそうだな。 ちなみに、もし def Class#method を認めるなら、def Class#コメント文 は ほとんど(^^; パーザでエラーになりますね。 普通ならメソッド定義記号を # 以外にして衝突を避ければいいのだけど、今回は # で書きたい、というのがそもそものはじまりだしなぁ。インスタンスメソッドの 表し方って # 以外にありましたっけ? 無ければ取り下げだな。 -- 楓の街のダイ 「ジョゼットは、体は機械だけれど… MAP2303@mapletown.net でも、心は人間なの!」 -> Wonder Project J2