Oop 水晶郎作为新的前缀

Oop 水晶郎作为新的前缀,oop,crystal-lang,Oop,Crystal Lang,我在查看crystal编译器的源代码时,遇到了以下问题: def self.from(obj : Array) case obj.size when 0 Nop.new when 1 obj.first else new obj end end 特别是,新obj。我知道T.new用于创建T类型的新实例,但我以前从未见过new x。这是某种方法吗?我没有在那个文件中看到它的

我在查看crystal编译器的源代码时,遇到了以下问题:

    def self.from(obj : Array)
      case obj.size
      when 0
        Nop.new
      when 1
        obj.first
      else
        new obj
      end
    end

特别是,
新obj
。我知道
T.new
用于创建
T
类型的新实例,但我以前从未见过
new x
。这是某种方法吗?我没有在那个文件中看到它的定义。这是什么
新的
,它有什么作用?

可能只是
什么东西。新的(x)
<代码>新建
它是
self.new
,因为您可以将
self
放入范围内