Junior — Middle
Τι συμβαίνει αν δημιουργήσετε ένα slice με μηδενική τιμή και ποιες λειτουργίες επιτρέπονται με αυτό;
sobes.tech AI
Απάντηση από AI
Στη Go, μια slice με μηδενική τιμή είναι μια nil slice. Δεν δείχνει σε κανέναν πίνακα και έχει μήκος και χωρητικότητα ίσα με το μηδέν.
Επιτρεπτές λειτουργίες με τέτοια slice:
- Απόκτηση μήκους και χωρητικότητας (
len(slice) == 0,cap(slice) == 0) - Επανάληψη πάνω στη slice (ο βρόχος απλά δεν θα εκτελεστεί)
- Προσθήκη στοιχείων μέσω
append, που θα δημιουργήσει μια νέα slice με δεσμευμένη μνήμη
Παράδειγμα:
var s []int // nil slice
fmt.Println(s == nil) // true
fmt.Println(len(s)) // 0
s = append(s, 1) // τώρα το s δεν είναι nil, περιέχει ένα στοιχείο
Δεν μπορείς να προσπελάσεις στοιχεία με δείκτη, καθώς η slice είναι κενή και αυτό θα προκαλέσει panic.