Swift Arrays: Πώς να το χρησιμοποιήσετε και γιατί; (Με παραδείγματα)

Σε αυτό το σεμινάριο, θα μάθετε για πίνακες, τη δημιουργία του, την πρόσβαση σε τιμές ενός πίνακα και ορισμένες κοινές λειτουργίες σε πίνακα.

Στο προηγούμενο άρθρο Swift Data Types, μάθαμε για τη δημιουργία μεταβλητών / σταθερών κάποιου τύπου δεδομένων που μπορούν να κρατήσουν μία μόνο τιμή.

Αλλά, τι γίνεται αν θέλουμε να αποθηκεύσουμε πολλές τιμές του ίδιου τύπου δεδομένων. Χρησιμοποιούμε κάτι που ονομάζεται Array στο Swift.

Τι είναι ένας πίνακας;

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

Μία συστοιχία μπορεί να αποθηκεύσει τιμές οποιουδήποτε τύπου δεδομένων π.χ. Int, String, τάξη κλπ

Πώς να δηλώσετε έναν πίνακα στο Swift;

Μπορείτε να δημιουργήσετε έναν κενό πίνακα προσδιορίζοντας τον τύπο δεδομένων μέσα σε αγκύλες ().

Θυμηθείτε, Πρέπει να συμπεριλάβετε τον τύπο μέσα σε αγκύλες, διαφορετικά το Swift θα το αντιμετωπίζει ως κανονικό τύπο δεδομένων και μπορείτε να αποθηκεύσετε μόνο μία τιμή σε αυτό.

Παράδειγμα 1: Δήλωση ενός κενού πίνακα

 let emptyIntArr:(Int) = () print(emptyIntArr) 

Όταν εκτελείτε το πρόγραμμα, η έξοδος θα είναι:

 ()

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

Ή

Μπορείτε επίσης να ορίσετε έναν κενό πίνακα όπως παρακάτω:

 let emptyIntArr:Array = Array() print(emptyIntArr) 

Ή

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

Παράδειγμα 2: Δήλωση ενός πίνακα με ορισμένες τιμές

 let someIntArr = (1, 2, 3, 4, 5, 6, 7, 8, 9) print(someIntArr) 

Όταν εκτελείτε το πρόγραμμα, η έξοδος θα είναι:

 (1, 2, 3, 4, 5, 6, 7, 8, 9)

Στο παραπάνω πρόγραμμα, έχουμε δηλώσει μια σταθερή someIntArr που μπορεί να αποθηκεύσει συστοιχία του Integer χωρίς να προσδιορίσει ρητά τον τύπο. Επίσης, έχουμε αρχικοποιήσει πίνακα με τιμές 1, 2, 3, 4, 5, 6, 7, 8, 9 .

Παράδειγμα 3: Δήλωση ενός πίνακα που περιέχει τον καθορισμένο αριθμό μιας επαναλαμβανόμενης τιμής

Μπορείτε επίσης να επαναλάβετε μια τιμή συγκεκριμένες φορές για να σχηματίσετε έναν πίνακα στο Swift. Αυτό γίνεται χρησιμοποιώντας τον αρχικοποιητή πίνακα με επανάληψη και μέτρηση

 let arrWithRepeatingValues = Array(repeating: "Hello, World", count: 4) print(arrWithRepeatingValues) 

Όταν εκτελείτε το πρόγραμμα, η έξοδος θα είναι:

 ("Γεια, Κόσμος", "Γεια, Κόσμος", "Γεια, Κόσμος", "Γεια, Κόσμος")

Στο παραπάνω πρόγραμμα, έχουμε ορίσει ένα σταθερό arrWithRepeatingValues ​​που αποθηκεύει μια σειρά από συμβολοσειρά Hello, World και επαναλαμβάνει την ίδια τιμή για 4 φορές όπως ορίζεται στην καταμέτρηση.

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

Πώς αποθηκεύονται οι τιμές σε πίνακα;

Ας υποθέσουμε ότι έχετε μια σταθερά που μπορεί να αποθηκεύσει σειρά συμβολοσειρών όπως παρακάτω:

 ας intArr = (21, 34, 54, 12)

Η εικονική αναπαράσταση του τρόπου αποθήκευσης των τιμών σε πίνακα φαίνεται παρακάτω:

Όλες οι συστοιχίες που δημιουργείτε ξεκινούν με το ευρετήριο 0. Το πρώτο στοιχείο αποθηκεύεται στο ευρετήριο 0, το δεύτερο στοιχείο στον επόμενο ευρετήριο (1) και ούτω καθεξής.

Πώς να αποκτήσετε πρόσβαση σε στοιχεία πίνακα στο Swift;

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

Ας υποθέσουμε ότι δηλώσατε έναν πίνακα intArr όπως παραπάνω. Το πρώτο στοιχείο είναι το intArr (0), το δεύτερο στοιχείο είναι το intArr (1) και ούτω καθεξής.

Παράδειγμα 4: Πρόσβαση σε στοιχεία ενός πίνακα

 let intArr = (21, 34, 54, 12) print(intArr(0)) print(intArr(1)) print(intArr(2)) print(intArr(3)) 

Όταν εκτελείτε το πρόγραμμα, η έξοδος θα είναι:

 21 34 54 12 

Μπορείτε επίσης να αποκτήσετε πρόσβαση σε στοιχεία ενός πίνακα χρησιμοποιώντας βρόχους εισόδου. Δείτε το Swift For-in loop για να μάθετε περισσότερα σχετικά με αυτό.

Πώς να τροποποιήσετε / προσθέσετε στοιχεία πίνακα στο Swift;

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

Παράδειγμα 5: Τροποποίηση στοιχείων ενός πίνακα

 var intArr = (21, 34, 54, 12) intArr(0) = 12 intArr(1) = 42 intArr(2) = 45 intArr(3) = 21 print(intArr) 

Όταν εκτελείτε το πρόγραμμα, η έξοδος θα είναι:

 (12, 42, 45, 21)

Μπορείτε επίσης να τροποποιήσετε όλα τα στοιχεία του πίνακα με νέες τιμές όπως παρακάτω:

Παράδειγμα 6: Τροποποίηση ενός πίνακα στο σύνολό του

 var intArr = (21, 34, 54, 12) intArr = (1,2,3) print(intArr) 

Όταν εκτελείτε το πρόγραμμα, η έξοδος θα είναι:

 (1, 2, 3)

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

Παράδειγμα 7: Προσθήκη νέου στοιχείου σε πίνακα χρησιμοποιώντας σύνταξη συνδρομής (Δεν λειτουργεί)

 var intArr = (21, 34, 54, 12) intArr(4) = 10 

Όταν εκτελείτε το πρόγραμμα, η έξοδος θα είναι:

 μοιραίο σφάλμα: Ευρετήριο εκτός εύρους

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

Για να εισαγάγουμε σωστά ένα νέο στοιχείο σε έναν πίνακα, χρησιμοποιούμε τη append()μέθοδο του πίνακα . append()περιγράφεται στην παρακάτω ενότητα.

Μερικές χρήσιμες ενσωματωμένες λειτουργίες & ιδιότητες Array

1. είναι άδειο

Αυτή η ιδιότητα καθορίζει εάν ένας πίνακας είναι κενός ή όχι. Επιστρέφει trueεάν ένας πίνακας δεν περιέχει καμία τιμή επιστρέφει διαφορετικά false.

Παράδειγμα 8: Πώς λειτουργεί τοEmpty;

 let intArr = (21, 34, 54, 12) print(intArr.isEmpty) 

Όταν εκτελείτε το πρόγραμμα, η έξοδος θα είναι:

 ψευδής

2. πρώτα

Αυτή η ιδιότητα χρησιμοποιείται για πρόσβαση στο πρώτο στοιχείο ενός πίνακα.

Παράδειγμα 9: Πώς λειτουργεί πρώτα;

 let intArr = (21, 34, 54, 12) print(intArr.first) 

Όταν εκτελείτε το πρόγραμμα, η έξοδος θα είναι:

 Προαιρετικό (21)

Ομοίως, μπορείτε να χρησιμοποιήσετε την lastιδιότητα για πρόσβαση στο τελευταίο στοιχείο ενός πίνακα.

3. προσαρτώ

Η συνάρτηση προσάρτησης χρησιμοποιείται για την εισαγωγή / προσθήκη στοιχείου στο τέλος του πίνακα.

Παράδειγμα 10: Πώς λειτουργεί το προσάρτημα;

 var intArr = (21, 34, 54, 12) intArr.append(32) print(intArr) 

Όταν εκτελείτε το πρόγραμμα, η έξοδος θα είναι:

 (21, 34, 54, 12, 32)

Μπορείτε επίσης να προσθέσετε περιεχόμενο ενός πίνακα σε έναν άλλο πίνακα ως:

 var firstArr = (1,2,3,4) var secondArr = (5,6,7,8) firstArr.append(contentsOf: secondArr) print(firstArr) 

Όταν εκτελείτε το πρόγραμμα, η έξοδος θα είναι:

 (1, 2, 3, 4, 5, 6, 7, 8)

4. εισάγετε

Αυτή η συνάρτηση χρησιμοποιείται για την εισαγωγή / προσθήκη στοιχείου σε συγκεκριμένο ευρετήριο του πίνακα.

Παράδειγμα 11: Πώς λειτουργεί το ένθετο;

 var intArr = (21,34,54,12) intArr.insert(22, at: 1) print(intArr) 

Όταν εκτελείτε το πρόγραμμα, η έξοδος θα είναι:

 (21, 22, 34, 54, 12)

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

5. αφαιρέστε

Αυτή η συνάρτηση αφαιρεί και επιστρέφει την τιμή που καθορίζεται στην καθορισμένη θέση από τον πίνακα.

Παράδειγμα 12: Πώς λειτουργεί η κατάργηση;

 var strArr = ("ab","bc","cd","de") let removedVal = strArr.remove(at: 1) print("removed value is (removedVal)") print(strArr) 

Όταν εκτελείτε το πρόγραμμα, η έξοδος θα είναι:

 η αφαιρεθείσα τιμή είναι bc ("ab", "cd", "de") 

Ομοίως, μπορείτε επίσης να χρησιμοποιήσετε συναρτήσεις όπως removeFirstνα αφαιρέσετε το πρώτο στοιχείο ενός πίνακα, removeLastνα αφαιρέσετε το τελευταίο στοιχείο ενός πίνακα και removeAllνα αδειάσετε έναν πίνακα.

6. αντιστράφηκε

Αυτή η συνάρτηση επιστρέφει τα στοιχεία του πίνακα σε αντίστροφη σειρά.

Παράδειγμα 13: Πώς λειτουργεί το αντίστροφο ();

 var intArr = (21,22,23,24) let reversedArr = Array(intArr.reversed()) print(reversedArr) 

Όταν εκτελείτε το πρόγραμμα, η έξοδος θα είναι:

 (24, 23, 22, 21)

7. μετράνε

Αυτή η ιδιότητα επιστρέφει τον συνολικό αριθμό στοιχείων σε έναν πίνακα.

Παράδειγμα 14: μέτρηση

 let floatArr = (10.2,21.3,32.0,41.3) print(floatArr.count) 

Όταν εκτελείτε το πρόγραμμα, η έξοδος θα είναι:

 4

Πράγματα που πρέπει να θυμάστε

Ενώ χρησιμοποιείτε σύνταξη συνδρομητή για πρόσβαση σε στοιχεία ενός πίνακα στο Swift, πρέπει να είστε σίγουροι ότι η τιμή βρίσκεται στο ευρετήριο, διαφορετικά θα λάβετε σφάλμα χρόνου εκτέλεσης. Ας το δούμε στο παράδειγμα:

 let intArr = (21, 34, 54, 12) print(intArr(-1)) 

Όταν εκτελείτε το πρόγραμμα, η έξοδος θα είναι:

 μοιραίο σφάλμα: Ευρετήριο εκτός εύρους

Στο παραπάνω πρόγραμμα, δεν υπάρχει τιμή στο ευρετήριο -1 . Έτσι, όταν προσπαθείτε να αποκτήσετε πρόσβαση στην τιμή στο ευρετήριο, θα λάβετε σφάλμα χρόνου εκτέλεσης.

Για να αποφύγετε αυτό, βρείτε πρώτα το ευρετήριο του στοιχείου που προσπαθείτε να καταργήσετε. Και μετά αφαιρέστε το στοιχείο στο ευρετήριο όπως παρακάτω:

 var intArr = (21, 34, 54, 12) if let index = intArr.index(of: 34) ( print("found index") let val = intArr.remove(at: index) print(val) ) 

Όταν εκτελείτε το πρόγραμμα, η έξοδος θα είναι:

 βρέθηκε ευρετήριο 34 

ενδιαφέροντα άρθρα...