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

Կարողությունը օգնում է արդյունավետ կառավարել հիշողությունը, նվազեցնելով հատկացման քանակը սլայսի աճի ժամանակ։