Junior — Middle
Агар ба он 10 унсур илова кунем, вақте ки он ибтидоӣ холӣ аст, дарозӣ ва иқтидори слайс чӣ мешавад?
sobes.tech AI
Ҷавоб аз AI
Агар дар шумо дар Go як слайс холӣ дошта бошед (дарозӣ ва қобилияти он 0 бошад), ва ба он 10 унсур бо истифода аз функсияи append илова кунед, пас:
- Дарозии слайс ба 10 мерасад — шумораи унсурҳое, ки илова кардаед.
- Қобилияти слайс автоматӣ бо як захира зиёд мешавад, одатан барои пешгирӣ кардани такрори такрори тақсимоти хотира. Қобилияти дақиқ аз иҷроиш вобаста аст, аммо одатан 16 ё бештар хоҳад буд, то ки унсурҳои навро ҷойгир кунад ва барои иловаҳои оянда захира дошта бошад.
Масалан:
var s []int // слайс холӣ
s = append(s, make([]int, 10)...) // илова кардани 10 унсур
fmt.Println(len(s)) // 10
fmt.Println(cap(s)) // >=10, одатан 16 ё 20
Ин тариқ, қобилияти динамикӣ меафзояд, то хотираро самаранок идора кунад ҳангоми афзоиши слайс.