Donc, vous plongez dans Go et vous entendez parler de tranches. «Quelles sont les tranches?» Vous vous demandez peut-être. Les tableaux ne sont-ils pas suffisants? Eh bien, décomposons-le! Les tranches sont une fonctionnalité de tueur en Go. Ils sont comme des tableaux, mais beaucoup plus frais - ils sont dynamiques et flexibles, capables de grandir et de diminuer comme votre programme en a besoin. Mais il y a une prise ou deux en cours de route. Décomposons tout et faisons vous faire trancher!
À la base, les tranches sont des tableaux. Mais contrairement aux tableaux statiques, les tranches sont dynamiques; Ils peuvent changer la taille, ce qui est super pratique lorsque vos besoins de données sont imprévisibles. Imaginez que vous avez une liste d'articles, et parfois c'est 5 articles, mais d'autres fois, cela pourrait être de 50! Les tranches ne font pas de problème. Ils se redimensionnent juste - un peu comme la magie. ✨
Mais voici l'affaire: chaque fois qu'une tranche change de taille, un tout nouveau tableau est créé en dessous, et les données sont copiées sur ce nouveau tableau. Pratique? Certainement! Mais il y a un peu de coût de calcul ici. Chaque redimensionnement signifie que Go doit allouer une nouvelle mémoire et mélanger les choses.
Voici une pointe de go pour ya: si vous savez que vous aurez besoin de beaucoup d'espace pour une tranche, utilisez la fonction de faire. Avec Make ([] t, Len, Cap), vous dites à Go: "Hé, donnez-moi une tranche de ce type, avec cette longueur et cette capacité." Avoir une capacité initiale prête à aller vous permet d'économiser le coût de la redimensionnement plus tard. Intelligent, non?
numbers := make([]int, 0, 100)
Cette tranche commence par une capacité de 100 mais n'a pas encore d'articles. Vous êtes prêt à le remplir sans aller constamment redimensionner les choses. À long terme, vous économisez sur les performances.
Chaque tranche a une longueur (len) et une capacité (cap), et ils jouent différents rôles:
Lorsque vous souhaitez développer une tranche, ajoutez votre fonction de référence. Il est conçu pour ajouter des éléments à la fin de votre tranche, et il redimensionne automatiquement la tranche si nécessaire. Dites au revoir aux erreurs hors limites (enfin, surtout)!
numbers := []int{1, 2, 3} numbers = append(numbers, 4, 5, 6)
Si la tranche a suffisamment de capacité pour s'adapter aux nouveaux éléments, il l'utilisera. Sinon, ajouter crée un nouveau tableau avec plus d'espace et déplace vos données. Aussi simple que ça! Selon l'Effective GO, si la capacité est insuffisante, ajoutera "allouer un nouveau tableau sous-jacent". Assez soigné, non?
Les tranches de Go sont votre ami - et un puissant à cela. Ils vous permettent de travailler avec des collections de données de manière flexible, tout en cachant certains des détails granuleux de la gestion de la mémoire. Mais rappelez-vous: avec un grand pouvoir vient une grande responsabilité. Chaque redimensionnement est livré avec un peu de frais de calcul. En comprenant comment les tranches fonctionnent et comment la création et l'ajout peuvent aider, vous êtes en bonne voie de rédiger un code de Go Efficient et élégant.
efficace-go
Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.
Copyright© 2022 湘ICP备2022001581号-3