Sobes.tech
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")
}