Senior
Τι μπορείς να πεις για το map στο Go;
sobes.tech AI
Απάντηση από AI
Στα Go, το map είναι ένας ενσωματωμένος τύπος δεδομένων που υλοποιεί έναν συσχετιστικό πίνακα ή λεξικό, όπου οι κλειδιά αντιστοιχίζονται σε τιμές.
Χαρακτηριστικά του map στο Go:
- Τα κλειδιά και οι τιμές έχουν ορισμένους τύπους, π.χ.,
map[string]int— κλειδιά τύπου string, τιμές ακέραιοι. - Το map αρχικοποιείται με τη χρήση της συνάρτησης
make, π.χ.,m := make(map[string]int). - Πρόσβαση σε στοιχεία μέσω
m[key]. - Αν το κλειδί δεν υπάρχει, επιστρέφεται η μηδενική τιμή του τύπου της τιμής.
- Μπορείτε να ελέγξετε την ύπαρξη ενός κλειδιού με τη δεύτερη τιμή επιστροφής:
val, ok := m[key]. - Τα maps δεν έχουν σειρά, η σειρά δια traversing είναι τυχαία.
- Τα maps δεν είναι ασφαλή για πολλαπλά νήματα, για παράλληλη πρόσβαση πρέπει να χρησιμοποιείται συγχρονισμός.
Παράδειγμα:
package main
import "fmt"
func main() {
m := make(map[string]int)
m["apple"] = 5
m["banana"] = 3
val, ok := m["apple"]
if ok {
fmt.Println("apple:", val)
}
// Διαγραφή κλειδιού
delete(m, "banana")
}