Junior — Middle
Программалоодо массивдин узундугу жана сыйымдуулук параметрлери эмнеге айырмаланат?
sobes.tech AI
AIден жооп
Go тилде массивдердин узундугу белгиленет жана түзүлгөндө аны өзгөртүүгө болбойт. Массивдин узундугу (length) анын ичинде камтылган элементтердин саны болуп саналат жана ал туруктуу.
Капаситет (capacity) — бул массив же кесим (slice) кошумча эс тутум бөлбөстөн канааттандыра алчу элементтердин саны. Массивдер үчүн капаситет узундукка барабар, анткени алар туруктуу. Кесимдер үчүн капаситет узундуктан чоң болушу мүмкүн, анткени кесимдер динамикалык түзүмдөр болуп, кеңейе алышат.
Мисал:
arr := [5]int{1, 2, 3, 4, 5} // узундук жана капаситет 5
slice := arr[1:3] // кесимдин узундугу 2 (индекстер 1 жана 2)
// кесимдин капаситети 4 (1-индексден баштап массивдин аякына чейин)
fmt.Println(len(slice)) // 2
fmt.Println(cap(slice)) // 4
Ошентип, узундук — бул учурдагы өлчөм (элементтердин саны), ал эми капаситет — эс тутумду кайра бөлүштүрбөстөн максималдуу өлчөм.