在Ruby中,{1 => new("alice")}中的"new"是什么意思?

3

我是Ruby的新手,今天遇到了以下代码。我查看了《Ruby编程语言》一书,但没有找到对这种语法的解释。请问有人能够帮我解释一下吗?我知道要创建一个对象,需要使用类似于 Person.new("我的名字") 的语法。

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
1个回答

6

find 是一个类方法。

在类方法中,self 指代该类。在方法中,可以省略 self

因此,new 表示 self.new;在这种情况下等同于 Person.new


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接