Подтвердить что ты не робот

ИмяError в Ruby

Для этого фрагмента кода:

class myBaseClass
  def funcTest()
    puts "baseClass"
  end
end
myBaseClass.new.funcTest

Я получаю сообщение об ошибке:

NameError: undefined local variable or method `myBaseClass' for main:Object
from c:/Users/Yurt/Documents/ruby/polymorphismTest.rb:9
from (irb):145:in `eval'
from (irb):145
from c:/Ruby192/bin/irb:12:in `<main>'
irb(main):152:0> x=myBaseClass.new

Когда я пытаюсь x=myBaseClass.new, я получаю:

NameError: undefined local variable or method `myBaseClass' for main:Object from (irb):152

Кто-то уже столкнулся с этой проблемой? Я не думаю, что мой код может быть неправильным.

4b9b3361

Ответ 1

В ruby ​​все константы, включая имена классов, должны начинаться с заглавной буквы. myBaseClass будет интерпретироваться как локальная переменная undefined. myBaseClass будет работать правильно.

Ответ 2

Ваше имя класса должно начинаться с капитала, рабочий код ниже

class MyBaseClass
  def funcTest()
   puts "baseClass"
 end
end



MyBaseClass.new.funcTest

Ответ 3

Ваш код неверен. Classnames должны начинаться с прописных букв в Ruby.

class MyBaseClass

исправляет его.

То, что я не получаю, - это то, как вы не получаете ясного сообщения об ошибке, как я.