Thread View: fj.lang.ruby
3 messages
3 total messages
Started by Akira Ikarashi
Sat, 11 Apr 1998 00:00
same name methods
Author: Akira Ikarashi
Date: Sat, 11 Apr 1998 00:00
Date: Sat, 11 Apr 1998 00:00
37 lines
1341 bytes
1341 bytes
$B8^==Mr(B@$BEl5~M}2JBg3X$G$9!#(B
$B<ALd$J$N$G$9$,!"F1$8L>A0$r;}$D%a%=%C%I$rJ#?tDj5A$7$?$$>l9g!"$I$&$9$l$P(B
$B$h$$$N$G$7$g$&$+!)(BC++$B$d(BJava$B$N$h$&$K!"(B
def cat(String str)
...
end
def cat(File f)
...
end
$B$H=q$-$?$$$N$G$9!#(B
def cat(f)
if f.instance_of?(String)
...
elsif f.instance_of?(File)
...
else
...
end
...
end
$B$N$h$&$K(Binstance_of?()$B$r;H$C$F=hM}$rJ,$1$J$1$l$P$$$1$J$$$N$G$7$g$&$+!)(B
$B6qBNE*$K$O!"J#?t$N(Binitialize$B$rDj5A$7$?$$$H9M$($F$$$^$9!#(B
$B$^$?!"(Bruby$B$G$O%a%=%C%I$N0z?t$K7?$,$J$$$?$a!"%/%i%9$N%I%-%e%a%s%H$K$O0z(B
$B?t$N7?$,=q$+$l$F$$$J$$$N$G$9$,!"0z?t$N7?$O$I$&$7$?$i$o$+$k$G$N$7$g$&$+!)(B
#$B@hF|!"(BFile.symlink()$B$r;H$C$?$H$3$m!"%(%i!<$G=*N;$7$F$7$^$$6C$-$^$7$?!#(B
#perl$B$HF1$8$h$&$K!"<:GT$7$?$i(Bnil$B$rJV$9$b$N$@$H;W$C$F$$$^$7$?!#(B
--
$B8^==Mr(B $B98(B(ikarashi@itlb.te.noda.sut.ac.jp)
Re: same name methods
Author: 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を返すものだと思っていました。 馴れると例外処理の方が楽ですよ。 いちいち返り値をチェックしてやる必要がないですから。 -- 前田 修吾
Re: same name methods
Author: ttate
Date: Sun, 12 Apr 1998 00:00
Date: Sun, 12 Apr 1998 00:00
18 lines
1157 bytes
1157 bytes
立石@JAISTです。 j8197602@ed.noda.sut.ac.jpさん(04月11日20時): j8197602>>五十嵐@東京理科大学です。 j8197602>> j8197602>>質問なのですが、同じ名前を持つメソッドを複数定義したい場合、どうすれば j8197602>>よいのでしょうか?C++やJavaのように、 クラスObjectのメソッドis_a,instance_of?などを使って区別 しています。 ---------------------------------------------- Name Takaaki Tateishi E-Mail ttate@jaist.ac.jp URL http://www.pluto.dti.ne.jp/~tateishi/ Org School of Information Science Japan Advanced Institute of Science and Technology (JAIST)
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads