Андрея обнови решението на 11.10.2015 19:17 (преди около 9 години)
+RATES = {bgn: 1, usd: 1.7408, eur: 1.9557, gbp: 2.6415}
+
+def convert_to_bgn(price, currency)
+ (price * RATES[currency]).round(2)
+end
+
+def compare_prices(first_price, first_currency, second_price, second_currency)
+ unless first_currency.equal? second_currency
+ first_price = convert_to_bgn(first_price, first_currency)
+ second_price = convert_to_bgn(second_price, second_currency)
+ end
+ first_price <=> second_price
+end
Супер. Само дребни неща:
- Беше ли нужна проверката в
compare_prices
? Дори и да беше, би следвало да използваш==
в подобна ситуация - Един дребен трик, който подобрява естетиката на кода е да подравняваш еднакви контрукции на съседни редове. Добави един space в
compare_prices
(така че двете=
да са едно под друго) и виж дали няма да ти хареса повече
Привет,
Относно проверката - според мен има смисъл, тъй като така потенциално избягваме ненужно конвертиране. За сравняването действително не бях сигурен кой от четирите начина да избера - на лекцията не ми стана много ясно, а явно и не съм разбрал много добре обясненията в SO.
Относно подравняването - не съм свикнал по този начин, но предполагам, че ако свикна - ще ми изглежда по-добре. :)