Junior — Middle
Πώς γίνεται η πρόσβαση στις τιμές σε ένα λεξικό που δεν έχει δημιουργηθεί ακόμα;
sobes.tech AI
Απάντηση από AI
Στη γλώσσα Go, αν ένας χάρτης (map) δεν έχει ακόμη δημιουργηθεί (δηλαδή, είναι nil), η προσπάθεια πρόσβασης σε στοιχεία μέσω του κλειδιού δεν θα προκαλέσει panic, αλλά θα επιστρέψει την τιμή μηδέν του τύπου των στοιχείων.
Για παράδειγμα:
var m map[string]int // m == nil
fmt.Println(m["key"]) // Θα εμφανίσει 0, δεν θα προκαλέσει σφάλμα
Ωστόσο, η προσπάθεια να αποδοθεί μια τιμή σε έναν nil χάρτη θα προκαλέσει panic:
m["key"] = 10 // panic: αποστολή σε καταχώρηση σε nil χάρτη
Επομένως, πριν γράψετε σε έναν χάρτη, πρέπει να βεβαιωθείτε ότι έχει αρχικοποιηθεί, για παράδειγμα:
m = make(map[string]int)
m["key"] = 10
Έτσι, για ανάγνωση, μπορείτε να προσεγγίσετε έναν nil χάρτη χωρίς σφάλματα, αλλά για εγγραφή, πρέπει να δημιουργήσετε τον χάρτη προηγουμένως.