Code Fix

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

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

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

 1  class ArrayUtil
 2    def _____sum_all(list)
            ^
 3      list.sum
 4    end
 5  end
 6  
 7  puts ArrayUtil.sum_all([1, 2, 3])
main.rb:7:in `<main>': undefined method `sum_all' for class ArrayUtil (NoMethodError)

空欄を埋めて実行を通す

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

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

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

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

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