Μέχρι τώρα, όλες οι ασκήσεις που έχεις δει χρησιμοποιούν κλάσεις.
Μερικές φορές δεν χρειαζόμαστε την επιβάρυνση της δημιουργίας ενός αντικειμένου με κατάσταση, οπότε αντί γι' αυτό χρησιμοποιούμε 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 ασκήσεις και πραγματική καθοδήγηση από ανθρώπους, όλα δωρεάν.