Решение на Първа задача от Димитър Терзиев

Обратно към всички решения

Към профила на Димитър Терзиев

Резултати

  • 6 точки от тестове
  • 0 бонус точки
  • 6 точки общо
  • 8 успешни тест(а)
  • 0 неуспешни тест(а)

Код

BGN_EXCHANGE_RATES = {usd: 1.7408, eur: 1.9557, gbp: 2.6415, bgn: 1.0}
def convert_to_bgn(price, currency)
(price * BGN_EXCHANGE_RATES[currency]).round(2)
end
def compare_prices(first_price, first_currency, second_price, second_currency)
convert_to_bgn(first_price, first_currency) <=>
convert_to_bgn(second_price, second_currency)
end

Лог от изпълнението

........

Finished in 0.00635 seconds
8 examples, 0 failures

История (2 версии и 2 коментара)

Димитър обнови решението на 10.10.2015 02:04 (преди около 9 години)

+CURRENCY_TO_BGN = {usd: 1.7408, eur: 1.9557, gbp: 2.6415, bgn: 1.0}
+
+def convert_to_bgn(price, currency)
+ (price * CURRENCY_TO_BGN[currency]).round(2)
+end
+
+def compare_prices(price_1, currency_1, price_2, currency_2)
+ convert_to_bgn(price_1, currency_1) <=> convert_to_bgn(price_2, currency_2)
+end

Брях, почти перфектно!

  • Предпочитай думи в имената, числата са леко криптични (first_price vs price_1)
  • CURRENCY_TO_BGN по принцип е добро име. Но е и малко двусмислено. Звучи като да съдържа {usd: :bgn, eur: :bgn, gbp: :bgn, bgn: :bgn}. Нямаше да го отбелязвам ако нямаше точен термин - обменен курс

Димитър обнови решението на 10.10.2015 13:03 (преди около 9 години)

-CURRENCY_TO_BGN = {usd: 1.7408, eur: 1.9557, gbp: 2.6415, bgn: 1.0}
+BGN_EXCHANGE_RATES = {usd: 1.7408, eur: 1.9557, gbp: 2.6415, bgn: 1.0}
def convert_to_bgn(price, currency)
- (price * CURRENCY_TO_BGN[currency]).round(2)
+ (price * BGN_EXCHANGE_RATES[currency]).round(2)
end
-def compare_prices(price_1, currency_1, price_2, currency_2)
- convert_to_bgn(price_1, currency_1) <=> convert_to_bgn(price_2, currency_2)
+def compare_prices(first_price, first_currency, second_price, second_currency)
+ convert_to_bgn(first_price, first_currency) <=>
+ convert_to_bgn(second_price, second_currency)
end

Мерси за feedback-а, както и за термина(обменен курс) - схванах защо речника е важен за програмист. За числата в имената се опитвах да избегна нов ред, понеже в конвенциите не намерих как е хубаво да се пише.