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