Az eddigi feladataid mind osztályokat használtak.
Néha azonban nincs szükség arra a többletterhel, amit egy állapottal rendelkező objektum létrehozása jelent, ezért inkább module-t használunk.
A modul nagyon hasonlít az osztályhoz (valójában az objektumhierarchiában a Module a Class szülője), a fő különbség pedig az, hogy példánymetódusok helyett osztálymetódusokat használunk.
Az osztálymetódusok self.-fel kezdődnek, és közvetlenül a modulon hívjuk meg őket.
Például:
module Speaker
def self.echo(something)
"#{something} ... #{something}"
end
end
Speaker.echo("Hello") #=> "Hello ... Hello"
Többféleképpen is írhatunk ciklust Rubyban, de mivel általában inkább felsorolást használunk, mintsem ciklusokat, a leggyakrabban látott ciklus talán a while ciklus:
counter = 0
while counter < 5
counter += 1
end
Használhatod a testvérét, az until-t is:
counter = 0
until counter == 5
counter += 1
end
Ebben a feladatban megtakarítási számlákkal fogsz dolgozni. A megtakarítási számla egyenlege minden évben a kamatláb alapján frissül. A bank által adott kamatláb a számlán lévő pénz mennyiségétől (azaz az egyenlegétől) függ:
1000 dollárnál kisebb egyenleg esetén.1000 dollárnál nagyobb vagy azzal egyenlő, de 5000 dollárnál kisebb egyenleg esetén.5000 dollárnál nagyobb vagy azzal egyenlő pozitív egyenleg esetén.Három részfeladatod van, és mindegyik az egyenleggel és annak kamatlábával foglalkozik.
Valósítsd meg a SavingsAccount.interest_rate metódust, amely a megadott egyenleg alapján kiszámítja a kamatlábat:
SavingsAccount.interest_rate(200.75)
#=> 0.5
Figyelj rá, hogy a visszaadott érték egy Float példány.
Valósítsd meg a SavingsAccount.annual_balance_update metódust, amely a kamatlábat figyelembe véve kiszámítja az éves egyenlegfrissítést:
SavingsAccount.annual_balance_update(200.75)
#=> 201.75375
Figyelj rá, hogy a visszaadott érték egy Float példány.
Valósítsd meg a SavingsAccount.years_before_desired_balance metódust, amely kiszámítja, hány évre van minimálisan szükség a kívánt egyenleg eléréséhez:
SavingsAccount.years_before_desired_balance(200.75, 214.88)
#=> 14
Figyelj rá, hogy a visszaadott érték egy Integer példány.
Iratkozz fel az Exercism-re, hogy megtanuld és elsajátítsd a(z) Ruby nyelvet 21 fogalom121 feladat segítségével, valódi emberi mentorálással, mindez ingyen.