Sobes.tech
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 μπορεί να επεκταθεί μέχρι τη χωρητικότητα χωρίς να δεσμευτεί νέος πίνακας.