Sobes.tech
Senior

Slice nima va u massivdan qanday farq qiladi?

sobes.tech AI

AIdan javob

Go tilida massiv (array) — bu bir xil turdagi elementlarni o'z ichiga olgan belgilangan o'lchamdagi tuzilma. Massivning o'lchami e'lon qilishda belgilanadi va dastur bajarilishi davomida o'zgartirilmaydi.

Slice — bu massivning dinamik, o'lchami o'zgaruvchan bo'lakidir. U massivga ko'rsatkich, uzunlik va sig'imni o'z ichiga olgan tuzilma. Slices massivning qisman qismlarida ishlashga imkon beradi va zarur bo'lsa, avtomatik ravishda kengayadi.

Asosiy farqlar:

  • O'lcham: massivning o'lchami doimiy, slice esa dinamik.
  • O'tkazish: massivlar qiymat bilan o'tkaziladi (nusxa olinadi), slices esa havola bilan (massivga ko'rsatkich) o'tkaziladi.
  • Moslashuvchanlik: slice append funksiyasi yordamida kengaytirilishi mumkin, massiv esa mumkin emas.

Misol:

var arr [3]int = [3]int{1, 2, 3} // doimiy o'lchamdagi massiv

var s []int = arr[0:2] // massivning bir qismi bo'lgan slice

s = append(s, 4) // slice kengayadi, zarur bo'lsa, yangi massiv yaratiladi