Junior — Middle
Μπορούν να προστεθούν στοιχεία σε ένα Map που δεν έχει δημιουργηθεί ακόμη ή δεν έχει λάβει αρχικές τιμές;
sobes.tech AI
Απάντηση από AI
Στο Go, δεν μπορείτε να προσθέσετε στοιχεία σε ένα map αν δεν έχει αρχικοποιηθεί. Όταν δηλώνετε μια μεταβλητή τύπου map χωρίς αρχικοποίηση, έχει την τιμή nil, και η προσπάθεια εγγραφής σε αυτό το map θα προκαλέσει ένα panic κατά την εκτέλεση.
Για να προσθέσετε στοιχεία, πρέπει πρώτα να δημιουργήσετε ένα map χρησιμοποιώντας τη συνάρτηση make ή να το αρχικοποιήσετε με ένα literal:
var m map[string]int // m == nil
m["key"] = 1 // panic: ανάθεση σε καταχώρηση σε nil map
m = make(map[string]int) // τώρα το m είναι αρχικοποιημένο
m["key"] = 1 // λειτουργεί
// ή άμεση αρχικοποίηση
m2 := map[string]int{"initial": 10}
m2["key"] = 1 // λειτουργεί
Έτσι, πριν προσθέσετε στοιχεία, το map πρέπει να έχει δημιουργηθεί και να μην είναι nil.