Code Fix

上級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)

空欄を埋めて実行を通す

広告
広告スロット(未設定)

def self.method と def method を混同すると NoMethodError になる

どちらか一方しか定義していないのに、もう一方の呼び方をするとNoMethodErrorになります。

このエラーの解説と類題をまとめて見る →

広告
広告スロット(未設定)