"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Laissez parler de tranches: le duo dynamique des tableaux!

Laissez parler de tranches: le duo dynamique des tableaux!

Publié le 2025-03-23
Parcourir:648

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!

Let

Tranches: tableaux sur les stéroïdes

À 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.

Alors, comment pouvons-nous apprivoiser cette bête? Entrer en train de faire

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?

  • Par exemple:
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.

Longueur vs capacité: le duo dynamique des tranches

Chaque tranche a une longueur (len) et une capacité (cap), et ils jouent différents rôles:

  • len (tranche): c'est le nombre d'éléments actuellement dans la tranche.
  • cap (tranche): c'est la longueur maximale que la tranche peut contenir avant d'avoir besoin d'un redimensionnement. Disons que vous avez une tranche x. Si vous essayez d'accéder à x [n] avec un n qui est supérieur à la longueur (Len (x)), vous obtiendrez une erreur hors de portée. Mais pas de soucis! Si vous ajoutez des articles à une tranche et que vous atteignez sa capacité, allez simplement vous attribuer un tableau plus grand sous le capot. Tout ce que vous devez faire est de continuer à coder.

Besoin d'ajouter plus d'éléments? Rencontrez ajouter

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)!

  • Voici un exemple pratique:
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?

Emballage

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

Déclaration de sortie Cet article est reproduit sur: https://dev.to/learngo/lets-talk-about-slices-in-go-the-dynamic-duo-of-arrays-2c1?1 s'il y a une violation, veuillez contacter [email protected] pour le supprimer.
Dernier tutoriel Plus>

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