Sobes.tech
Senior

რა არის slice და როგორ განსხვავდება მასივისგან?

sobes.tech AI

პასუხი AI-სგან

Go ენაში, მასივი (array) — ეს არის ფიქსირებული ზომის სტრუქტურა, რომელიც შეიცავს ერთ ტიპის ელემენტებს. მასივის ზომა განსაზღვრულია გამოყოფის დროს და ვერ იცვლება პროგრამის შესრულების დროს.

Slice — ეს არის დინამიური, ზომის ცვლილებადი მასივის ნაჭერი. იგი წარმოადგენს სტრუქტურას, რომელიც შეიცავს მითითებას მასივზე, სიგრძეს და მოცულობას. Slices საშუალებას აძლევს მუშაობა მასივის ქვესამსახურებზე და ავტომატურად იწელება საჭიროების შემთხვევაში.

ძირითადი განსხვავებები:

  • ზომა: მასივი აქვს ფიქსირებული ზომა, slice — დინამიური.
  • გადაცემა: მასივები გადაეცემა მნიშვნელობით (კოპირებით), slices — მითითებით (მიმართულებით მასივზე).
  • მოწესრიგებულობა: slice-ი შეიძლება გაფართოვდეს append ფუნქციის გამოყენებით, მასივი — არა.

მაგალითი:

var arr [3]int = [3]int{1, 2, 3} // ფიქსირებული ზომის მასივი

var s []int = arr[0:2] // slice, რომელიც მითითებულია მასივის ნაწილზე

s = append(s, 4) // slice-ი გაფართოვდება, საჭიროების შემთხვევაში ახალი მასივი შეიქმნება