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