Sobes.tech
Junior — Middle

Πώς διακρίνουμε τους τρόπους δημιουργίας ενός slice στο Go με χρήση var, make και ανάθεση με δείκτες ή μέσω append;

sobes.tech AI

Απάντηση από AI

Στη Go, οι slices μπορούν να δημιουργηθούν με διάφορους τρόπους, που διαφέρουν στην αρχικοποίηση και την κατανομή μνήμης:

  1. Δήλωση με var — δημιουργεί μια nil-slice, που δεν δείχνει σε κανένα πίνακα και έχει μήκος και χωρητικότητα 0.
var s []int // nil-slice
  1. Δημιουργία slice μέσω make — καταχωρεί έναν πίνακα με το καθορισμένο μήκος και χωρητικότητα, και επιστρέφει μια slice που δείχνει σε αυτόν τον πίνακα.
s := make([]int, 5) // slice μήκους 5, γεμάτη με μηδενικά
  1. Αντιστοίχιση με δείκτες — μόνο εφικτό αν η slice έχει ήδη αρχικοποιηθεί και έχει επαρκές μήκος.

  2. Προσθήκη στοιχείων μέσω append — προσθέτει στοιχεία στη slice, και αν χρειάζεται, αυξάνει τη χωρητικότητα και καταχωρεί νέο πίνακα.

s = append(s, 10) // προσθέτει το στοιχείο 10 στη slice

Έτσι, το var δημιουργεί μια άδεια nil-slice, το make μια slice με κατανεμημένη μνήμη, η αντιστοίχιση με δείκτες απαιτεί υπάρχον μήκος, και το append επεκτείνει δυναμικά τη slice.