method =有多个参数

时间:2013-03-28 18:00:01

标签: ruby

如果我在最后有一个等号的方法:

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

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

2 个答案:

答案 0 :(得分: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 

答案 1 :(得分:1)

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

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

A.new.property = 1, 2