为什么以下代码错误:
class Complex
def initialize(real, imaginary)
@imaginary = imaginary
@real = real
end
end
c = Complex.new(5,3)
Complex.rb:8:在
<main>': undefined method
new'中用于Complex:Class (NoMethodError)
但下面的语义相同的程序不会:
class Wat
def initialize(a, b)
@a = a
@b = b
end
end
c = Wat.new(5,3)
答案 0 :(得分:4)
因为Complex
已经存在,并且以不同的方式构建,例如,
Complex(2, 3)
当您重新打开课程(不定义自己的课程)时,您会在现有课程的限制下进行操作。
new
在1.9 IIRC附近被移除。