我正在阅读money gem 源代码,但我似乎无法理解构造函数:
def initialize(obj, currency = Money.default_currency, bank = Money.default_bank)
@fractional = obj.respond_to?(:fractional) ? obj.fractional : as_d(obj)
@currency = obj.respond_to?(:currency) ? obj.currency : Currency.wrap(currency)
@currency ||= Money.default_currency
@bank = obj.respond_to?(:bank) ? obj.bank : bank
end
我们为什么要测试是否obj
有"fractional"
方法?什么时候返回真,什么时候返回假?下一行的货币问题相同。
谢谢