dポイントプレゼントキャンペーン実施中!

クラスメソッド“say”を定義しました。
クラス外からこれを呼び出すときは
Hoge.say 'hello'
で、同じクラス内の、インスタンスメソッド“hello”からクラスメソッド“say”を呼び出したいとき、クラス外から呼び出すのと同じように呼び出すことはできました。

class Hoge
 def self.say(word)
  puts word
 end
 def hello
  Hoge.say('hello')
 end
end


しかし、メソッド“hello”内にHogeというクラス名を直書きしたくないのですが、どんな文法を使用すればよろしいでしょうか?
# Hoge#hello内での試行錯誤
self.say 'hello' => エラー
say 'hello' => エラー

ひょっとして、クラス名を直書きする以外手段はないのでしょうか・・?

A 回答 (1件)

def hello


 self.class.say('hello')
end
でしょうか。何かもっと違う書き方もありそうな気もしますけど。
    • good
    • 0
この回答へのお礼

確かに・・示されれば、あーなるほどと思いました。

なんだかずばりベストな回答である気がしますが、
何かもっと違う書き方、思いついたらお願いします。

Thanks!

お礼日時:2009/04/26 23:57

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!