Maison  >  Article  >  développement back-end  >  Que signifie la casquette Golang ?

Que signifie la casquette Golang ?

(*-*)浩
(*-*)浩original
2019-12-03 09:13:104867parcourir

Que signifie la casquette Golang ?

le capuchon sert principalement à permettre à la tranche de fournir une longueur variable.

Imaginez s'il n'y avait pas de casquette, seulement des lentilles. (Apprentissage recommandé : go)

sliceA a une longueur de 10, len=10, et a été rempli d'éléments ; le onzième élément doit maintenant être inséré.

Comment faire

La longueur de la trancheA est étendue à 20, len=20 A ce moment, il y a 11 éléments utiles et 9 postes vacants.

Les seules interfaces que sliceA expose au monde extérieur sont ptr et len=20 À l'heure actuelle, si vous devez insérer un autre élément.

La trancheA doit-elle être étendue ou peut-elle être insérée directement sur la base d'origine ? En même temps, à partir de quel index doit-elle être insérée ?

Ces problèmes peuvent être résolus avec la combinaison de l'objectif et du capuchon.

cap() peut être utilisé pour vérifier la capacité d'un tableau ou d'une tranche

Dans un tableau, la longueur est fixe et immuable, donc len(arr) et cap(arr) Le résultat est toujours le même

Dans slice, len(sli) indique le nombre d'éléments visibles (c'est-à-dire le nombre d'éléments vus en imprimant directement l'élément), et cap (sli) indique le nombre de tous les éléments , par exemple : la fonction

arr := []int{2, 3, 5, 7, 11, 13}
sli := arr[1:4]
fmt.Println(sli)
fmt.Println(len(sli))
fmt.Println(cap(sli))

cap() renvoie la taille de l'espace alloué par la tranche du tableau.

package main 
 
import "fmt" 
 
func main() { 
    mySlice := make([]int, 5, 10)  
 
    fmt.Println("len(mySlice):", len(mySlice)) 
    fmt.Println("cap(mySlice):", cap(mySlice)) 
}

La sortie de ce programme est :

len(mySlice): 5
cap(mySlice): 10

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn