命名方法作为变量调用方法红宝石(naming methods as variables callin

2019-10-30 01:45发布

您好我是非常初学者。

我想我明白attr_accessor中是如何工作的(如下图)。 和“设定器”是name=(name)方法。 我知道这种方法相当于分配: name = "john" 。 因为“=”是接受参数,并指定该参数的任何对象调用它的方法。 (虽然我不知道如何“名”可以考虑的对象,因为它被分配到一个对象)

所以我的问题是:你怎么可以指定一个变量调用一个方法,一个方法叫什么名字? 这感觉就像我失去了一些东西..

class Person
  def name
    @name
  end

  def name=(name)
    @name = name
  end
end

Answer 1:

所以我的问题是:你怎么可以指定一个变量调用一个方法,一个方法叫什么名字? 这感觉就像我失去了一些东西..

你不知道。 在此代码

def name=(name)
  @name = name
end

name= 不是变量name调用方法= 。 该方法的名称name=

编辑:

在上面的代码段的def与终止配对end构成一个方法定义。

def method_name(param1, param2)
  # method body
end

在同一行def只能有方法名,可选圆括号和帕拉姆列表。 根据定义有一个“变量调用方法”,在这条线将是非法的。 因此,在你的代码name=是方法名。



文章来源: naming methods as variables calling methods Ruby