上級 › def self.method と def method を混同すると NoMethodError になる › パターン2
def self.method と def method を混同すると NoMethodError になる
def self.methodはクラスメソッド(ClassName.methodで呼ぶ)を定義し、def methodはインスタンスメソッド(インスタンス.methodで呼ぶ)を定義します。
1 class StringUtil 2 def _____shout(text) ^ 3 text.upcase + "!" 4 end 5 end 6 7 puts StringUtil.shout("hi")
main.rb:7:in `<main>': undefined method `shout' for class StringUtil (NoMethodError)
空欄を埋めて実行を通す
インスタンスを作らずにクラス名から直接呼び出したいメソッドは、self.を付けたクラスメソッドとして定義します。
次の問題