Sobes.tech
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.