Πώς να δημιουργήσετε και να χρησιμοποιήσετε το Hashes στο Ruby

Πίνακες δεν είναι ο μόνος τρόπος για να διαχειριστείτε τις συλλογές μεταβλητών στο Ρουμπίνι. Ένας άλλος τύπος συλλογής μεταβλητών είναι το χασίσι, που ονομάζεται επίσης συσσωματικός πίνακας. Ένας hash είναι σαν ένας πίνακας δεδομένου ότι είναι μια μεταβλητή που αποθηκεύει άλλες μεταβλητές. Ωστόσο, ένας κατακερματισμός δεν είναι σύμφωνος με μια διάταξη δεδομένου ότι οι αποθηκευμένες μεταβλητές δεν αποθηκεύονται με κάποια συγκεκριμένη σειρά και ανακτώνται με ένα κλειδί αντί για τη θέση τους στη συλλογή.

Δημιουργήστε ένα ζεύγος Hash με κλειδί / αξία

Ένας hash είναι χρήσιμος για την αποθήκευση των αποκαλούμενων ζεύγη κλειδιών / τιμών. Ένα ζεύγος κλειδιού / τιμής έχει ένα αναγνωριστικό για να δηλώσει ποια μεταβλητή του κατακερματισμού θέλετε να αποκτήσετε πρόσβαση και μια μεταβλητή για να αποθηκεύεται στη θέση αυτή στο hash. Για παράδειγμα, ένας δάσκαλος μπορεί να αποθηκεύσει βαθμούς σπουδαστή σε ένα hash. Ο βαθμός του Bob θα είναι προσπελάσιμος σε ένα hash από το κλειδί "Bob" και η μεταβλητή που είναι αποθηκευμένη σε εκείνη την τοποθεσία θα είναι η βαθμίδα του Bob.

instagram viewer

Μια μεταβλητή hash μπορεί να δημιουργηθεί με τον ίδιο τρόπο όπως μια μεταβλητή πίνακα. Η πιο απλή μέθοδος είναι να δημιουργήσετε ένα κενό αντικείμενο hash και να το γεμίσετε με ζεύγη κλειδιών / τιμών. Σημειώστε ότι χρησιμοποιείται ο χειριστής ευρετηρίου, αλλά το όνομα του φοιτητή χρησιμοποιείται αντί του αριθμού.

Θυμηθείτε ότι τα hashes δεν είναι διορθωμένα, δηλαδή δεν υπάρχει καθορισμένη αρχή ή τέλος, όπως υπάρχει σε έναν πίνακα. Επομένως, δεν μπορείτε να προσαρτήσετε σε ένα hash. Οι τιμές εισάγονται απλά στο hash χρησιμοποιώντας τον χειριστή ευρετηρίου.

#! / usr / bin / env ruby
βαθμοί = Hash.new
βαθμοί ["Bob"] = 82
βαθμοί ["Jim"] = 94
βαθμοί ["Billy"] = 58
βάζει βαθμούς ["Jim"]

Hash Λικαλικά

Ακριβώς όπως συστοιχίες, μπορούν να δημιουργηθούν hashes με hash κυριολεκτικά. Οι λυχνίες Hash χρησιμοποιούν τα σγουράκια αντί για τις αγκύλες και τα ζεύγη τιμών κλειδιού ενώνονται =>. Για παράδειγμα, ένα hash με ένα ζεύγος κλειδιών / τιμών του Bob / 84 θα έμοιαζε έτσι: {"Bob" => 84}. Πρόσθετα ζεύγη κλειδιών / τιμών μπορούν να προστεθούν στο literal hash διαχωρίζοντάς τα με κόμματα. Στο ακόλουθο παράδειγμα, δημιουργείται ένα hash με τους βαθμούς για έναν αριθμό φοιτητών.

#! / usr / bin / env ruby
βαθμοί = {"Bob" => 82,
"Jim" => 94,
"Billy" => 58
}
βάζει βαθμούς ["Jim"]

Πρόσβαση σε μεταβλητές στο Hash

Μπορεί να υπάρχουν φορές που πρέπει να έχετε πρόσβαση σε κάθε μεταβλητή στο hash. Μπορείτε ακόμα να χρησιμοποιήσετε το βρόχο για τις μεταβλητές στο hash καθε loop, αν και δεν θα λειτουργήσει με τον ίδιο τρόπο όπως η χρήση του καθε loop με μεταβλητές πίνακα. Επειδή ένας hash δεν είναι οριζόντια, η σειρά με την οποία καθε θα βγάλει πέρα ​​από τα ζεύγη κλειδιού / τιμής μπορεί να μην είναι η ίδια με τη σειρά με την οποία τα βάλατε. Σε αυτό το παράδειγμα, ένα hash βαθμών θα τυλιχτεί και τυπωθεί.

#! / usr / bin / env ruby
βαθμοί = {"Bob" => 82,
"Jim" => 94,
"Billy" => 58
}
βαθμοί
βάζει "# {name}: # {βαθμός}"
τέλος