Đây là một cách phổ biến để thiết lập mặc định trong Ruby:Làm một lựa chọn sai theo mặc định
class QuietByDefault
def initialize(opts = {})
@verbose = opts[:verbose]
end
end
này được một cách dễ dàng bẫy rơi vào:
class VerboseNoMatterWhat
def initialize(opts = {})
@verbose = opts[:verbose] || true
end
end
Đây là một đúng cách thực hiện:
class VerboseByDefault
def initialize(opts = {})
@verbose = opts.include?(:verbose) ? opts[:verbose] : true
end
end
Cách tốt nhất/sạch nhất để mãlà gì? (Dĩ nhiên, tôi có thể tính toán nó ra.)
Mô hình nào được sử dụng rộng rãi, nếu có, trong mã Ruby nói chung? ActiveSupport có mô hình cho việc này không? (Tối thiểu tốt hơn - Tôi không cần một trình phân tích cú pháp tùy chọn dòng lệnh đầy đủ.)
Ranting P.S .: Tôi không thích sự không đối xứng giữa mã xử lý mặc định true
so với tùy chọn mặc định false
. Một mô hình làm thay đổi giữa hai - mà không gây ra lỗi - sẽ là một điều tốt để xem.
Rất đẹp! Tôi * có thể * đã thấy điều này trước đây, nhưng tôi không nhớ nó. Cảm ơn! –