gpt4 book ai didi

ruby - method_missing

转载 作者:数据小太阳 更新时间:2023-10-29 07:40:27 25 4
gpt4 key购买 nike

我正在尝试实现 method_missing 以将 $ 转换为其他货币,如 5.dollars yield 为 5、5.yen 将 yield 为 0.065 5.euro 6.56 等等。我现在可以做到这一点。现在我需要实现它,但以 5.dollars.in(:yen) 为例。

这是我现在拥有的:

class Numeric
@@currencies = {'yen' => 0.013, 'euro' => 1.292, 'rupee' => 0.019}
def method_missing(method_id)
singular_currency = method_id.to_s.gsub( /s$/, '')
if @@currencies.has_key?(singular_currency)
self * @@currencies[singular_currency]
else
super
end
end
end

谁能解释一下我该怎么做?

PS:我希望你不要给我代码,而是给我一个解释,这样我就可以自己决定它是如何完成的。

最佳答案

添加货币“dollar”和in方法:

class Numeric
@@currencies = {'dollar' => 1, 'yen' => 0.013, 'euro' => 1.292, 'rupee' => 0.019}
def method_missing(method_id)
singular_currency = method_id.to_s.gsub(/s$/, '')
if @@currencies.has_key?(singular_currency)
self * @@currencies[singular_currency]
else
super
end
end

def in(currency)
singular_currency = currency.to_s.gsub(/s$/, '')
self / @@currencies[singular_currency]
end
end

关于 ruby - method_missing,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9651612/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com