在Ruby中,"new"在{1 => new("alice")}中意味着什么?

Ivo*_*ton 3 ruby class

我是Ruby的新手,今天我将使用以下代码.我搜索过"Ruby编程语言"一书,但没有找到这种语法的解释.有人可以帮忙解释一下吗?我知道要创建一个你需要使用的对象Person.new("My name").

class Person
  attr_reader :name
  def initialize name
    @name = name
  end

  def self.find id
    people = {1 => new("alice"), 2 => new("bob")}
    people[id]
  end
end
Run Code Online (Sandbox Code Playgroud)

fal*_*tru 6

find 是一种类方法.

在类方法中,self引用类.在一种方法中,self可以省略.

所以,new意味着self.new; 这相当于Person.new在这种情况下.