Sobes.tech
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

Бинобар ин, дарозӣ — ин андозаи ҳозира (соли элементҳо), ва қобилияти нигоҳдорӣ — андозаи максималӣ бе тақсими хотира.