2007年12月30日

[ruby-list:44424] メソッドのargumentについて

初投稿です。
名前はAkiraです。
漢字では輝と書きます。

今、オブジェクト指向について悩んでいて、
メソッドが他の「自作」クラスのメソッドをargumentにとって良いのか?
と考えています。
Rubyは型がありません。

だから例えば

class My_Class_A
def initialize(class_b)
@class_b_instance = class_b
end
end

と書いて、class_bのインスタンスを初期化で持つ事にします。
しかし、ここで
My_Class_A.new("aaaa")
として、文字列を入れても、持ててしまいます。
これはちょっとおかしな事です。

もし、こういう書き方があるかは知りませんが、
class My_Class_A
def initialize(My_Class_B class_b)
@class_b_instance = class_b
end
end

という風にargumentの段階で強要すれば、
代入した時に「そりゃダメだよ」と教えてくれます。
これは筋が通っていると思いますが、

Rubyの場合、
1)インスタンスを使ううちに型が合ってない事が発覚する。
くらいしかエラーが出ないと思います。

そこで質問は、まず、
1)Rubyでクラスを作る時に、他のクラスのインスタンスをargumentにとる事が許されますか?
2)また、許される場合に、この少し奇妙な仕様は動的言語の仕様ですか?
の2点でさせてもらおうと思います。
--
Akira Hayakawa <ruby@xxxxx>

投稿者 xml-rpc : 2007年12月30日 14:42
役に立ちました?:
過去のフィードバック 平均:(0) 総合:(0) 投票回数:(0)
本記事へのTrackback: http://hoop.euqset.org/blog/mt-tb2006.cgi/68197
トラックバック
コメント
コメントする




画像の中に見える文字を入力してください。