Code Fix

上級def self.method と def method を混同すると NoMethodError になる › パターン5

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

def self.methodはクラスメソッド(ClassName.methodで呼ぶ)を定義し、def methodはインスタンスメソッド(インスタンス.methodで呼ぶ)を定義します。

 1  class NumberUtil
 2    def _____double(n)
            ^
 3      n * 2
 4    end
 5  end
 6  
 7  puts NumberUtil.double(5)
main.rb:7:in `<main>': undefined method `double' for class NumberUtil (NoMethodError)

空欄を埋めて実行を通す

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

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

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

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

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