我想使用选项哈希作为Ruby中方法的输入,但是有一种方法可以快速设置所有同义变量(即具有相同的名称),而不是分别设置每个变量?

因此,不要执行以下操作:

class Connection
  def initialize(opts={})
    @host     = opts[:host]
    @user     = opts[:user]
    @password = opts[:password]
    @project  = opts[:project]
    # ad nauseum...

是否有一种单行将散列中的每个传入选项分配给具有相同名称的变量?

最佳答案

def initialize(opts={})
  opts.each { |k,v| instance_variable_set("@#{k}", v) }
end

关于ruby - 在Ruby中使用选项哈希快速设置实例变量?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13303401/

10-12 19:53