Junior — Middle
Ի՞նչ կլինի սլայսի երկարության և ծավալի հետ, եթե ավելացնենք 10 տարր, երբ այն սկզբում դատարկ է։
sobes.tech AI
Պատասխան AI-ից
Եթե ձեր մոտ Go-ում դատարկ սլայս կա (երկարությունը և ծավալը 0 են), և դուք ավելացնում եք դրան 10 տարր append ֆունկցիայի միջոցով, ապա՝
- Սլայսի երկարությունը կդառնա 10 — այն տարրերի քանակը, որոնք դուք ավելացրել եք:
- Սլայսի ծավալը ավտոմատ կերպով կավելանա, սովորաբար մի պահով, որպեսզի խուսափել հաճախակի հիշողության վերաօգտագործումից։ Աճի ճշգրիտ ծավալը կախված է իրականացմանից, բայց հաճախ այն կլինի 16 կամ ավելի, որպեսզի տեղավորի նոր տարրերը և ունենա պահեստային տարածք ապագա ավելացումների համար:
Օրինակ՝
var s []int // դատարկ սլայս
s = append(s, make([]int, 10)...) // ավելացնում ենք 10 տարր
fmt.Println(len(s)) // 10
fmt.Println(cap(s)) // >=10, սովորաբար 16 կամ 20
Այսպիսով՝ ծավալը դինամիկորեն մեծանում է, որպեսզի արդյունավետ կառավարի հիշողությունը սլայսի աճի ժամանակ։