Junior — Middle
Μπορεί να χρησιμοποιηθεί η τιμή nil ως στοιχείο επανάληψης για το map σε έναν βρόχο;
sobes.tech AI
Απάντηση από AI
Στο Go, η τιμή nil δεν μπορεί να χρησιμοποιηθεί ως στοιχείο επανάληψης για το map σε έναν βρόχο, επειδή το range στο map επιστρέφει το κλειδί και την τιμή, και το nil αντιπροσωπεύει την απουσία τιμής.
Αν η τιμή στο map είναι δείκτης ή διεπαφή, μπορεί να είναι nil, και αυτό είναι φυσιολογικό. Αλλά ο ίδιος ο επαναληπτής δεν μπορεί να είναι nil.
Παράδειγμα:
m := map[string]*int{
"a": nil,
"b": new(int),
}
for k, v := range m {
αν v == nil {
fmt.Printf("κλειδί %s περιέχει τιμή nil\n", k)
} αλλιώς {
fmt.Printf("κλειδί %s περιέχει την τιμή %d\n", k, *v)
}
}
Εδώ, το v μπορεί να είναι nil, αλλά ο βρόχος range στο map λειτουργεί σωστά.