Junior — Middle
Τι σημαίνει η ιδιότητα capacity σε ένα slice στο Go, αν δεν οριστεί ρητά κατά τη δημιουργία του;
sobes.tech AI
Απάντηση από AI
Στα Go, ένα slice είναι μια δομή που περιέχει έναν δείκτη σε έναν πίνακα, μήκος (len) και χωρητικότητα (capacity).
Αν κατά τη δημιουργία ενός slice η χωρητικότητα δεν οριστεί ρητά, τότε ορίζεται ίση με το μήκος του slice. Η χωρητικότητα δείχνει πόσα στοιχεία μπορεί να περιέχει το slice χωρίς να δεσμευτεί νέος χώρος μνήμης.
Για παράδειγμα:
s := make([]int, 3) // len=3, cap=3
Εδώ, η χωρητικότητα είναι 3, καθώς δεν έχει οριστεί ξεχωριστά.
Αν η χωρητικότητα είναι μεγαλύτερη από το μήκος, το slice μπορεί να επεκταθεί μέχρι τη χωρητικότητα χωρίς να δεσμευτεί νέος πίνακας.