这是设置在Ruby中默认的常用方法:制作一个选项虚假默认
class QuietByDefault
def initialize(opts = {})
@verbose = opts[:verbose]
end
end
这是一个容易陷阱落入:
class VerboseNoMatterWhat
def initialize(opts = {})
@verbose = opts[:verbose] || true
end
end
这是一个正确的办法做到这一点:
class VerboseByDefault
def initialize(opts = {})
@verbose = opts.include?(:verbose) ? opts[:verbose] : true
end
end
什么是编写最好的/干净的方式? (我能因素出来,当然)。
什么模式被广泛使用,如果有的话,在Ruby代码有什么看法? ActiveSupport有这样的模式吗? (最小的更好 - 我并不需要一个完整的命令行选项解析器)
咆哮P.S:我不喜欢这样处理,处理默认false
选项默认true
与代码的代码之间的不对称。而不会导致错误 - - 这使得两者之间改变的模式将看到一件好事。
很不错的!我*以前可能见过这个,但我不记得它。谢谢! – 2012-08-14 02:04:07