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
appendfunksiyasi 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