相关疑难解决方法(0)

使用哈希参数进行Ruby初始化

我发现自己对构造函数使用了哈希参数,特别是在编写用于配置的DSL或最终用户将要暴露的其他API时.我最终做的事情如下:

class Example

    PROPERTIES = [:name, :age]

    PROPERTIES.each { |p| attr_reader p }

    def initialize(args)
        PROPERTIES.each do |p|
            self.instance_variable_set "@#{p}", args[p] if not args[p].nil?
        end
    end

end
Run Code Online (Sandbox Code Playgroud)

有没有更惯用的方法来实现这一目标?抛弃常数和符号到字符串转换似乎特别令人震惊.

ruby idioms initialization dry

53
推荐指数
3
解决办法
4万
查看次数

标签 统计

dry ×1

idioms ×1

initialization ×1

ruby ×1