我想使用选项散列作为 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/