Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby 为什么这个语义相同的类会导致一个未定义的方法';新';错误?_Ruby_Constructor - Fatal编程技术网

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。虽然我很好奇,但我没有深入探究“为什么”。我认为这是一个“优化”;)