Sobes.tech
Junior — Middle

Կա՞ն տեսարաններ Go-ում, որոնք ունեն երկարության և ծավալի նման մեթոդներ, ինչպես սլայսները։

sobes.tech AI

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

Go-ում, քարտեզները (maps) չունեն երկարության և ծավալի մեթոդներ, ինչպես slices-ները: Փոխարենը, երկարությունը ստանալու համար օգտագործվում է ներքին len() ֆունկցիան, որը վերադարձնում է քարտեզի տարրերի քանակը:

Slices-ների համար կարելի է օգտագործել len()՝ ընթացիկ երկարությունը ստանալու համար և cap()՝ ծավալը (максимալ չափը առանց նոր հիշողության բաժանելու): Քարտեզների դեպքում cap() չկա, քանի որ դրանք դինամիկորեն աճում են տարրեր ավելացնելիս:

Օրինակ՝

m := make(map[string]int)

m["a"] = 1
fmt.Println(len(m)) // ցույց է տալիս 1

s := make([]int, 0, 10)
fmt.Println(len(s)) // 0
fmt.Println(cap(s)) // 10