Ответ 1
В ruby все константы, включая имена классов, должны начинаться с заглавной буквы. myBaseClass
будет интерпретироваться как локальная переменная undefined. myBaseClass
будет работать правильно.
Для этого фрагмента кода:
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
Кто-то уже столкнулся с этой проблемой? Я не думаю, что мой код может быть неправильным.
В ruby все константы, включая имена классов, должны начинаться с заглавной буквы. myBaseClass
будет интерпретироваться как локальная переменная undefined. myBaseClass
будет работать правильно.
Ваше имя класса должно начинаться с капитала, рабочий код ниже
class MyBaseClass
def funcTest()
puts "baseClass"
end
end
MyBaseClass.new.funcTest
Ваш код неверен. Classnames должны начинаться с прописных букв в Ruby.
class MyBaseClass
исправляет его.
То, что я не получаю, - это то, как вы не получаете ясного сообщения об ошибке, как я.