Maison > développement back-end > Golang > Pourquoi Golang n'a-t-il pas une structure de données d'ensemble native ?

Pourquoi Golang n'a-t-il pas une structure de données d'ensemble native ?

Patricia Arquette
Libérer: 2024-11-28 16:43:14
original
1015 Les gens l'ont consulté

Why Doesn't Golang Have a Native Set Data Structure?

Le curieux manque de structure de données définie à Golang

À Golang, le besoin fondamental d'une structure de données définie a conduit à la question déroutante : pourquoi n'en existe-t-il pas un fourni nativement ? S'inspirant de l'influente bibliothèque Guava de Google, pourquoi les concepteurs de Golang ont-ils omis de prendre en charge une structure aussi fondamentale, obligeant les développeurs à créer leurs propres implémentations ?

La réponse réside dans la simplicité de construction d'ensembles à l'aide de cartes. Comme le démontre l'extrait de code fourni, les cartes peuvent être exploitées pour créer des ensembles. Les opérations clés telles que la vérification de l'existence, l'ajout, la suppression et l'exécution d'opérations d'ensemble (union, intersection) peuvent être mises en œuvre facilement.

s := map[int]bool{5: true, 2: true}
_, ok := s[6] // check for existence
s[8] = true // add element 
delete(s, 2) // remove element

// Union
s_union := map[int]bool{}
for k, _ := range s1{
    s_union[k] = true
}
for k, _ := range s2{
    s_union[k] = true
}

// Intersection
s_intersection := map[int]bool{}
if len(s1) > len(s2) {
  s1, s2 = s2, s1 // better to iterate over a shorter set
}
for k,_ := range s1 { 
  if s2[k] {
    s_intersection[k] = true
  }
}
Copier après la connexion

Bien que ces implémentations basées sur des cartes soient suffisantes pour la plupart des scénarios pratiques, certaines peuvent soutiennent qu’une implémentation d’ensemble natif simplifierait et améliorerait la lisibilité du code. Néanmoins, pour les développeurs Golang, comprendre l'utilisation des cartes en tant qu'ensembles est crucial à la fois pour la résolution de problèmes et pour une utilisation efficace des ressources.

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal