Досі всі вправи, які ми бачили, використовували класи.
Іноді нам не потрібні накладні витрати на створення обʼєкта зі станом, тож замість цього ми використовуємо module.
Модуль дуже схожий на клас (насправді Module є батьком Class в ієрархії обʼєктів), а головна різниця полягає в тому, що замість методів екземпляра ми використовуємо методи класу.
Методи класу починаються з self. і викликаються безпосередньо на модулі.
Наприклад:
module Speaker
def self.echo(something)
"#{something} ... #{something}"
end
end
Speaker.echo("Hello") #=> "Hello ... Hello"
У Ruby є кілька способів писати цикли, але оскільки загалом ми частіше використовуємо перебирання, ніж цикли, найпоширенішим циклом, мабуть, є цикл while:
counter = 0
while counter < 5
counter += 1
end
Також можна використати його побратима until:
counter = 0
until counter == 5
counter += 1
end
У цій вправі ми будемо працювати з ощадними рахунками. Щороку баланс ощадного рахунку оновлюється залежно від відсоткової ставки. Відсоткова ставка, яку дає банк, залежить від суми грошей на рахунку (його балансу):
1000 доларів.1000 доларам і менший за 5000 доларів.5000 доларам.На нас чекають три завдання, і кожне з них стосується балансу та його відсоткової ставки.
Реалізуйте метод SavingsAccount.interest_rate, щоб обчислити відсоткову ставку на основі заданого балансу:
SavingsAccount.interest_rate(200.75)
#=> 0.5
Зауважте, що повернене значення - це екземпляр Float.
Реалізуйте метод SavingsAccount.annual_balance_update, щоб обчислити щорічне оновлення балансу з урахуванням відсоткової ставки:
SavingsAccount.annual_balance_update(200.75)
#=> 201.75375
Зауважте, що повернене значення - це екземпляр Float.
Реалізуйте метод SavingsAccount.years_before_desired_balance, щоб обчислити мінімальну кількість років, потрібну для досягнення бажаного балансу:
SavingsAccount.years_before_desired_balance(200.75, 214.88)
#=> 14
Зауважте, що повернене значення - це екземпляр Integer.
Зареєструйтеся на Exercism, щоб вивчати й опановувати Ruby, а також 21 концепція121 вправа та справжнє наставництво від людей, і все це безкоштовно.