Junior — Middle
Go-da massivlərlə işləyərkən slices-in tutumunu nəzərə almaq niyə vacibdir?
sobes.tech Süni İntellekt
AI-dan cavab
Go-da, dilimlər dinamik strukturlardır və massivə işarə edən göstərici, uzunluq və tutum (capacity) ehtiva edir. Dilimin tutumu, yeni yaddaş ayırmadan neçə element qəbul edə biləcəyini müəyyən edir.
Tutumunu nəzərə almaq vacibdir, çünki:
appendilə elementlər əlavə edildikdə, əgər dilimin uzunluğu tutumdan çox olarsa, artırılmış tutuma malik yeni massiv ayrılır və məlumatlar köçürülür, bu isə performansa təsir edir.- Tutumu bilmək yaddaşın səmərəli idarə olunmasına və artıq ayırmaların qarşısını almağa imkan verir.
Nümunə:
s := make([]int, 0, 5) // uzunluğu 0, tutumu 5
fmt.Println(len(s), cap(s)) // 0 5
s = append(s, 1, 2, 3, 4, 5)
fmt.Println(len(s), cap(s)) // 5 5
s = append(s, 6) // tutum aşılmış, yeni massiv ayrılır
fmt.Println(len(s), cap(s)) // 6 10 (təxminən)
Tutumunu idarə etməklə, dilimlərlə işləməyi optimallaşdırmaq mümkündür.