Sobes.tech
Junior — Middle

Πώς δημιουργούμε και αρχικοποιούμε σωστά τις slices στο Go;

sobes.tech AI

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

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

Οι φέτες μπορούν να δημιουργηθούν και να αρχικοποιηθούν με διάφορους τρόπους:

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

Η συνάρτηση make δεσμεύει έναν πίνακα στο παρασκήνιο και επιστρέφει μια φέτα που δείχνει σε αυτόν.

  1. Δημιουργία φέτας από έναν πίνακα:
arr := [5]int{1, 2, 3, 4, 5}
s := arr[1:4] // φέτα των στοιχείων με δείκτες 1,2,3

Είναι σημαντικό να θυμάστε ότι οι φέτες είναι αναφορές σε πίνακες, επομένως η αλλαγή στοιχείων στη φέτα αλλάζει και τον αρχικό πίνακα.

Παράδειγμα χρήσης:

package main
import "fmt"

func main() {
    s := make([]int, 3, 5)
    fmt.Println(s)       // [0 0 0]
    fmt.Println(len(s))  // 3
    fmt.Println(cap(s))  // 5

    s = append(s, 4, 5)
    fmt.Println(s)       // [0 0 0 4 5]
    fmt.Println(len(s))  // 5
    fmt.Println(cap(s))  // 5
}

Αυτή η προσέγγιση επιτρέπει την αποτελεσματική εργασία με δυναμικούς πίνακες στη Go.