這是設置在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