Διαδρομές
/
Ruby
Ruby
/
Ύλη
/
Μεταβλητές στιγμιοτύπου
Με

Μεταβλητές στιγμιοτύπου σε Ruby

7 ασκήσεις

Σχετικά με την έννοια Μεταβλητές στιγμιοτύπου

Βασικά σημεία:

  • Όταν καλείται η μέθοδος .new μιας κλάσης για να δημιουργηθεί ένα στιγμιότυπο αντικειμένου, στη μέθοδο .initialize περνιούνται όλα τα ορίσματα για να αρχικοποιηθεί η κατάσταση του στιγμιότυπου.
  • Τα ονόματα των μεταβλητών στιγμιότυπου έχουν πρόθεμα @.
  • Οι μεταβλητές στιγμιότυπου έχουν προεπιλεγμένη τιμή nil μέχρι να οριστούν ρητά.
  • Οι μεταβλητές στιγμιότυπου είναι ιδιωτικές από προεπιλογή και θα πρέπει να τις χειρίζεσαι με getters και setters.
class Backpack
  initialize(owner)
    @owner = owner
  end

  def owner
    @owner
  end

  def owner=(new_owner)
    @owner = new_owner
  end
end
  • Οι μέθοδοι που το όνομά τους τελειώνει σε = αναγνωρίζονται από τη Ruby ως setters και επιτρέπουν τη χρήση της σύνταξης ανάθεσης ως συντακτικής "ζάχαρης", π.χ. Backpack.new("Sven").owner = "Ayah". Πρόσεξε το κενό ανάμεσα στο owner και το =, ενώ το πραγματικό όνομα της μεθόδου είναι owner=.
  • Μπορείς να δημιουργήσεις getters και setters χρησιμοποιώντας τις μεθόδους attr_reader, attr_writer και attr_accessor:
    • attr_reader: Δημιουργεί getters για τα σύμβολα που παρατίθενται
    • attr_writer: Δημιουργεί setters για τα σύμβολα που παρατίθενται
    • attr_accessor: Δημιουργεί getters και setters για τα σύμβολα που παρατίθενται
class Backpack
  attr_accessor :owner

  initialize(owner)
    @owner = owner
  end
end
  • Γιατί να χρησιμοποιείς getters και setters αντί για την ίδια τη μεταβλητή στιγμιότυπου;
    • Αν υπήρχε ένα τυπογραφικό λάθος (το λέμε "typo") στο προηγούμενο παράδειγμα (π.χ. @ownar), θα αποτύγχανε σιωπηλά και θα μπορούσε να εισαγάγει ένα bug στο σύστημα.
    • Οι getters και οι setters το κάνουν αυτό ρητό και θα πετάξουν ένα σφάλμα όταν γίνει ένα typo.

Αναφορές

Αρχικοποίηση στιγμιοτύπων αντικειμένου

Μεταβλητές στιγμιότυπου

Επεξεργασία μέσω GitHub Ο σύνδεσμος ανοίγει σε νέο παράθυρο ή καρτέλα

Μάθε την έννοια Μεταβλητές στιγμιοτύπου

Η εξάσκηση είναι κλειδωμένη

Ξεκλείδωσε 5 ακόμη ασκήσεις για να εξασκηθείς στην έννοια Μεταβλητές στιγμιοτύπου