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