Ruby 为什么这个语义相同的类会导致一个未定义的方法';新';错误?
为什么会出现以下代码错误:Ruby 为什么这个语义相同的类会导致一个未定义的方法';新';错误?,ruby,constructor,Ruby,Constructor,为什么会出现以下代码错误: class Complex def initialize(real, imaginary) @imaginary = imaginary @real = real end end c = Complex.new(5,3) Complex.rb:8:in”:Complex:Class的未定义方法 (命名者) 但下面的语义相同的程序没有: class Wat def initialize(a, b)
class Complex
def initialize(real, imaginary)
@imaginary = imaginary
@real = real
end
end
c = Complex.new(5,3)
Complex.rb:8:in”:Complex:Class的未定义方法
(命名者)
但下面的语义相同的程序没有:
class Wat
def initialize(a, b)
@a = a
@b = b
end
end
c = Wat.new(5,3)
因为复杂的
已经存在,并且以不同的方式构建,例如
Complex(2, 3)
当您重新打开一个类(而不是定义自己的类)时,您将在现有类的约束下进行操作
新的
在1.9 IIRC左右被删除
- 因为复杂的
已经存在,并且以不同的方式构建,例如
Complex(2, 3)
当您重新打开一个类(而不是定义自己的类)时,您将在现有类的约束下进行操作
新的
在1.9 IIRC左右被删除
Complex(2,3)
是对该方法的调用,这是一个具有奇数名称的bog标准方法。真正的问题似乎是复杂。新的方法被删除了。@muistooshort-Yep。虽然我很好奇,但我没有深入探究“为什么”。我认为这是一个“优化”;)Complex(2,3)
是对该方法的调用,这是一个名为奇数的bog标准方法。真正的问题似乎是复杂。新的方法被删除了。@muistooshort-Yep。虽然我很好奇,但我没有深入探究“为什么”。我认为这是一个“优化”;)