Bisher haben alle Übungen, die du gesehen hast, Klassen verwendet.
Manchmal brauchen wir den Mehraufwand nicht, ein Objekt mit Zustand zu erzeugen, also verwenden wir stattdessen module.
Ein Modul ist einer Klasse sehr ähnlich (tatsächlich ist Module in der Objekthierarchie das Elternteil von Class). Der Hauptunterschied besteht darin, dass wir statt Instanzmethoden Klassenmethoden verwenden.
Klassenmethoden beginnen mit self. und werden direkt auf einem Modul aufgerufen.
Zum Beispiel:
module Speaker
def self.echo(something)
"#{something} ... #{something}"
end
end
Speaker.echo("Hello") #=> "Hello ... Hello"
Es gibt mehrere Möglichkeiten, in Ruby Schleifen zu schreiben. Da wir aber im Allgemeinen eher Enumeration als Schleifen verwenden, ist die wohl am häufigsten gesehene Schleife die while-Schleife:
counter = 0
while counter < 5
counter += 1
end
Du kannst auch ihr Gegenstück until verwenden:
counter = 0
until counter == 5
counter += 1
end
In dieser Übung arbeitest du mit Sparkonten. Jedes Jahr wird der Kontostand eines Sparkontos anhand des Zinssatzes aktualisiert. Der Zinssatz, den die Bank gewährt, hängt davon ab, wie viel Geld auf dem Konto liegt (der Kontostand):
1000 Dollar.1000 Dollar und weniger als 5000 Dollar.5000 Dollar.Du hast drei Aufgaben. Jede davon befasst sich mit dem Kontostand und seinem Zinssatz.
Implementiere die Methode SavingsAccount.interest_rate, um den Zinssatz anhand des angegebenen Kontostands zu berechnen:
SavingsAccount.interest_rate(200.75)
#=> 0.5
Beachte, dass der zurückgegebene Wert eine Instanz von Float ist.
Implementiere die Methode SavingsAccount.annual_balance_update, um die jährliche Aktualisierung des Kontostands zu berechnen und dabei den Zinssatz zu berücksichtigen:
SavingsAccount.annual_balance_update(200.75)
#=> 201.75375
Beachte, dass der zurückgegebene Wert eine Instanz von Float ist.
Implementiere die Methode SavingsAccount.years_before_desired_balance, um die Mindestanzahl an Jahren zu berechnen, die nötig ist, um den gewünschten Kontostand zu erreichen:
SavingsAccount.years_before_desired_balance(200.75, 214.88)
#=> 14
Beachte, dass der zurückgegebene Wert eine Instanz von Integer ist.
Melde dich bei Exercism an, um Ruby mit 21 Konzepte121 Übungen und echtem menschlichen Mentoring zu lernen und zu meistern, alles kostenlos.