Senior
Ի՞նչ է սլայսերի ծավալը և ինչպես է այն օգտագործվում:
sobes.tech AI
Պատասխան AI-ից
Go լեզվում, սլայսը (slice) կառուցվածք է, որը պարունակում է ցուցիչ դեպի զանգված, երկարություն (len) և կարողություն (cap): Կարողությունը առավելագույն թիվն է տարրերի, որոնք սլայսը կարող է պահել առանց նոր հիշողություն հատկացնելիս:
Երբ ստեղծվում է սլայս, նրա երկարությունը այն տարրերի թիվն է, որոնք նա պարունակում է, իսկ կարողությունը՝ հիմնական զանգվածի չափը, սկսած սլայսի առաջին տարրից:
Եթե append-ով տարրեր ավելացնելիս, սլայսի երկարությունը գերազանցում է կարողությունը, ապա հատկացվում է նոր զանգված մեծացված կարողությամբ, և տվյալները պատճենվում են դրան:
Օրինակ՝
s := make([]int, 2, 5) // երկարություն 2, կարողություն 5
fmt.Println(len(s)) // 2
fmt.Println(cap(s)) // 5
s = append(s, 1, 2, 3) // այժմ երկարություն 5, կարողություն 5
s = append(s, 4) // երկարություն 6, կարողություն մեծացվել է (օր. 10)
Կարողությունը օգնում է արդյունավետ կառավարել հիշողությունը, նվազեցնելով հատկացման քանակը սլայսի աճի ժամանակ։