Sobes.tech
Senior

Ի՞նչ է slice-ը և ինչպե՞ս է այն տարբերվում զանգվածից։

sobes.tech AI

Պատասխան AI-ից

Go լեզվում, զանգվածը (array)՝ դա ֆիքսված չափի կառուցվածք է, որը պարունակում է նույն տիպի տարրեր։ Զանգվածի չափը սահմանվում է հայտարարության ժամանակ և չի կարող փոխվել ծրագրի գործարկման ընթացքում։

Slice-ը՝ դա դինամիկ, չափի փոփոխական կտոր է զանգվածից։ Դա կառուցվածք է, որը պարունակում է ցուցիչ զանգվածի վրա, երկարություն և կարողություն։ Slices-ը թույլ են տալիս աշխատել զանգվածի ենթամասունքների հետ և ավտոմատ կերպով ընդլայնվում են անհրաժեշտության դեպքում։

Հիմնական տարբերությունները՝

  • Չափը: զանգվածը ունի ֆիքսված չափ, slice-ը՝ դինամիկ։
  • Տարածում: զանգվածները փոխանցվում են արժեքով (կոպիայով), slices-ը՝ հղումով (ցուցիչ զանգվածի վրա)։
  • Լկտիություն: slice-ը կարելի է ընդլայնել append ֆունկցիայով, զանգվածը՝ ոչ։

Օրինակ՝

var arr [3]int = [3]int{1, 2, 3} // ֆիքսված չափի զանգված

var s []int = arr[0:2] // slice, որը հղում է զանգվածի մասի վրա

s = append(s, 4) // slice-ը ընդլայնվում է, անհրաժեշտության դեպքում ստեղծվում է նոր զանգված