Crystal Lang new 作为前缀

Crystal Lang new as a Prefix

我正在查看 crystal 编译器的源代码,我遇到了这个:

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

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

可能只是 Something.new(x)newself.new,因为您可以将 self 放入范围内。