Πώς να συνδυάσετε Arrays σε Ruby

"Ποιος είναι ο καλύτερος τρόπος να συνδυαστεί συστοιχίες"Αυτή η ερώτηση είναι αρκετά αόριστη και μπορεί να σημαίνει μερικά διαφορετικά πράγματα.

Αληλουχία

Η συνένωση είναι να προσθέσετε ένα πράγμα στο άλλο. Για παράδειγμα, συνένωση των συστοιχιών [1,2,3] και [4,5,6] θα σου δώσω [1,2,3,4,5,6]. Αυτό μπορεί να γίνει με μερικούς τρόπους μέσα Ρουμπίνι.

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

Εναλλακτικά, χρησιμοποιήστε το concat (ο χειριστής + και η μέθοδος concat είναι λειτουργικά ισοδύναμοι).

Εάν κάνετε πολλές από αυτές τις ενέργειες, ίσως θελήσετε να αποφύγετε αυτό. Δημιουργία αντικειμένων δεν είναι ελεύθερη και κάθε μία από αυτές τις λειτουργίες δημιουργεί μια τρίτη διάταξη. Αν θέλετε να τροποποιήσετε έναν πίνακα στη θέση του, κάνοντας πιο μακρύ με νέα στοιχεία, μπορείτε να χρησιμοποιήσετε τον τελεστή <<.>

Αντί των αναμενόμενων [1,2,3,4,5,6] σειρά που παίρνουμε [1,2,3,[4,5,6]]. Αυτό έχει νόημα, ο χειριστής προσάρτησης παίρνει το αντικείμενο που το δίνετε και το προσδίδει στο τέλος του πίνακα. Δεν ήξερε ή δεν νοιαζόταν ότι προσπαθήσατε να προσαρτήσετε μια άλλη συστοιχία στον πίνακα. Έτσι μπορούμε να το βγάλουμε πέρα ​​από τον εαυτό μας.

instagram viewer

Ορισμός λειτουργιών

Ο "συνδυασμός" του κόσμου μπορεί επίσης να χρησιμοποιηθεί για να περιγράψει τις λειτουργίες ρύθμισης. Οι βασικές λειτουργίες της διατομής, της ένωσης και της διαφοράς είναι διαθέσιμες στο Ruby. Θυμηθείτε ότι τα "σύνολα" περιγράφουν ένα σύνολο αντικειμένων (ή μαθηματικών, αριθμών) που είναι μοναδικά σε αυτό το σύνολο. Για παράδειγμα, αν έπρεπε να εκτελέσετε μια ορισμένη λειτουργία στον πίνακα [1,1,2,3] Το Ruby θα φιλτράρει αυτό το δευτερόλεπτο 1, παρόλο που 1 μπορεί να είναι στο σύνολο που προκύπτει. Γι 'αυτό πρέπει να γνωρίζετε ότι αυτές οι ρυθμίσεις είναι διαφορετικές από τις λειτουργίες λίστας. Τα σύνολα και οι λίστες είναι θεμελιωδώς διαφορετικά πράγματα.

Μπορείτε να πάρετε την ένωση δύο συνόλων χρησιμοποιώντας το | χειριστής. Αυτός είναι ο χειριστής "ή", αν ένα στοιχείο βρίσκεται σε ένα σύνολο ή το άλλο, είναι στο σύνολο που προκύπτει. Έτσι το αποτέλεσμα του [1,2,3] | [3,4,5] είναι [1,2,3,4,5] (να θυμάστε ότι παρόλο που υπάρχουν δύο τρίχες, πρόκειται για μια προκαθορισμένη λειτουργία, όχι μια λειτουργία λίστας).

Η διασταύρωση δύο συνόλων είναι ένας άλλος τρόπος να συνδυαστούν δύο σύνολα. Αντί για μια λειτουργία "ή", η τομή δύο συνόλων είναι μια λειτουργία "και". Τα στοιχεία του προκύπτοντος συνόλου είναι εκείνα του και τα δυο σκηνικά. Και, ως λειτουργία "και", χρησιμοποιούμε τον χειριστή &. Έτσι το αποτέλεσμα του [1,2,3] & [3,4,5] είναι απλά [3].

Τέλος, ένας άλλος τρόπος να "συνδυάσεις" δύο σύνολα είναι να παίρνεις τη διαφορά τους. Η διαφορά δύο συνόλων είναι το σύνολο όλων των αντικειμένων που βρίσκονται στο πρώτο σετ δεν στο δεύτερο σετ. Έτσι [1,2,3] - [3,4,5] είναι [1,2].

Zipping

Τέλος, υπάρχει "φερμουάρ". Δύο συστοιχίες μπορούν να ταιριάξουν μαζί συνδυάζοντάς τους με ένα μάλλον μοναδικό τρόπο. Είναι καλύτερα να το δείξετε πρώτα και να το εξηγήσετε. Το αποτέλεσμα του [1,2,3] .zip ([3,4,5] είναι [ [1,3], [2,4], [3,5] ]. Τι συνέβη εδώ; Οι δύο συστοιχίες συνδυάστηκαν, με το πρώτο στοιχείο να είναι μια λίστα όλων των στοιχείων στην πρώτη θέση και των δύο σειρών. Το φερμουάρ είναι μια περίεργη πράξη και ίσως να μην το χρησιμοποιήσετε πολύ. Σκοπός του είναι να συνδυάσει δύο συστοιχίες των οποίων τα στοιχεία συσχετίζονται στενά.

instagram story viewer