2

如果我有一个末尾带有等号的方法:

class A
  def property= name, value
    ...
  end
end

如何调用该方法property=并将参数传递给它?

4

2 回答 2

3

Ruby 已经为键值对提供了一种特殊的 setter 语法。您可以看到它与 Hash 一起使用:

phone_numbers = { Bob: "555-555-1234", Francine: "555-555-5678"}
phone_numbers[:Jenny] = "555-867-5309"

要为您自己的课程获取此语法,您只需执行

def []=(key, value)
  # set the value however you like
end 
于 2013-03-28T18:27:18.827 回答
1

这是我最终得到的结果(感谢@LeeJarvis 的评论):

class A
  def property= value
    x, y = value
    p [x, y]
  end
end

A.new.property = 1, 2
于 2013-03-28T18:36:56.990 回答