From: Akira Hayakawa Date: 2007-12-30T14:42:48+09:00 Subject: [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