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 кеңейет, керек болсо жаңы массив түзүлөт