Article View: fj.lang.ruby
Article #62Re: same name methods
From: Shugo Maeda
Date: Sat, 11 Apr 1998 00:00
Date: Sat, 11 Apr 1998 00:00
58 lines
2056 bytes
2056 bytes
前田です。 # Followup-Toはfj.comp.lang.rubyにしています。 j8197602@ed.noda.sut.ac.jp (Akira Ikarashi) wrote: |質問なのですが、同じ名前を持つメソッドを複数定義したい場合、どうすれば |よいのでしょうか?C++やJavaのように、 | |def cat(String str) | ... |end |def cat(File f) | ... |end | |と書きたいのです。 Rubyではオーバーロードはできないので、 |def cat(f) | if f.instance_of?(String) | ... | elsif f.instance_of?(File) | ... | else | ... | end | ... |end のようにしないといけません。 case f when String ... when File ... end の方が多少スマートだと思います。 # 1.0だとできなかったかもしれません。 |また、rubyではメソッドの引数に型がないため、クラスのドキュメントには引 |数の型が書かれていないのですが、引数の型はどうしたらわかるでのしょうか? ドキュメントに書かれてない場合はソースを読むしかないですね(^^; たいていの場合、ドキュメントから想像が付くと思いますが。 |#先日、File.symlink()を使ったところ、エラーで終了してしまい驚きました。 |#perlと同じように、失敗したらnilを返すものだと思っていました。 馴れると例外処理の方が楽ですよ。 いちいち返り値をチェックしてやる必要がないですから。 -- 前田 修吾
Technical Details
Message-ID:
<86iuogil8a.fsf@totally-fudged-out-message-id>Path:
arc1-ca.pugleaf.net!unknown!not-for-mailReferences:
<6gnjr9$g82@sutnserv.ed.noda.sut.ac.jp>Show Full Headers
Complete Article Headers
X-Google-Language: Japanese,JIS X-Google-Thread: 13488f,d2d8eda29ec38f4c X-Google-Attributes: gid13488f,public X-Google-Thread: 10fe86,f36f83b340bce07,start X-Google-Attributes: gid10fe86,public From: shugo@po.aianet.ne.jp (Shugo Maeda) Subject: Re: same name methods Date: 1998/04/11 Message-ID: <86iuogil8a.fsf@totally-fudged-out-message-id> X-Deja-AN: 343065380 References: <6gnjr9$g82@sutnserv.ed.noda.sut.ac.jp> Followup-To: fj.comp.lang.ruby X-Emacs: Emacs 20.2, MULE 3.0 (MOMIJINOGA) Mime-Version: 1.0 (generated by SEMI MIME-Edit 0.100 - "Otomaru") Content-Type: text/plain; charset=ISO-2022-JP Organization: AIANet Internet Service Newsgroups: fj.lang.ruby,fj.comp.lang.ruby