Мартин обнови решението на 12.10.2015 14:18 (преди около 9 години)
+def convert_to_bgn(price, currency)
+ price *= 1.7408 if currency == :usd
+ price *= 1.9557 if currency == :eur
+ price *= 2.6415 if currency == :gbp
+ price.round(2)
+end
+
+def compare_prices(price_one, currency_one, price_two, currency_two)
+ result = convert_to_bgn(price_one, currency_one)
+ result -= convert_to_bgn(price_two, currency_two)
+end
Решението ти не е лошо, но е неконвенционално. Това структуриране с postfix-ните if-ове ме кара да очаквам, че price
ще (може да) се променя многократно. Типичната структура с if-elsif-...
или case
щеше да е по-добре. Колкото по-малко изненади, толкова по-добре.
result
в метода за сравнение е лошо име на променлива. А и присвояването на ред 10 не е нужно, можеше да е само изваждане.