Junior — Middle
Оё имкон дорад, ки тағйирёбандаи len дар ҳолате кӯтоҳтар аз андозаи воқеии массив ё қисм нишон диҳад?
sobes.tech AI
Ҷавоб аз AI
Даро, дар Go тағйирёбандаи len барои массив ё қисм ҳамеша дарозии ҳозираро инъикос мекунад, ки функсияи дарунсохти len() бармегардонад.
- Барои массив,
lenҳамеша баробар ба андозаи массив аст ва тағир намеёбад. - Барои қисм,
lenшумораи унсурҳоро дар қисм нишон медиҳад, ки метавонад камтар ё баробар ба қобилияти қисм бошад.
Ҳолате, ки len аз андозаи воқеии массив хурдтар бошад, ғайриимкон аст, зеро len барои массив доимӣ ва баробар ба андоза аст.
Барои қисм, дарозӣ метавонад аз қобилият камтар бошад, аммо на аз шумораи воқеии унсурҳое, ки тавассути индекс дастрасанд.
Масалан:
arr := [5]int{1,2,3,4,5}
fmt.Println(len(arr)) // 5
slice := arr[1:3]
fmt.Println(len(slice)) // 2
fmt.Println(cap(slice)) // 4
Дар ин ҷо, дарозии қисм 2 аст, ҳарчанд қобилият 4 аст. Аммо дарозӣ наметавонад аз андозаи воқеии қисм бештар бошад.