Menu
Coddy logo textTech

O Idioma de Conjuntos em Go

Parte da seção Lógica & Fluxo do Journey de GO da Coddy — lição 31 de 68.

Go não possui uma estrutura de dados de conjunto (set) integrada como muitas outras linguagens de programação. No entanto, os desenvolvedores Go criaram uma solução elegante usando mapas para simular conjuntos, e esse padrão tornou-se tão comum que é considerado Go idiomático.

O idioma de conjunto (set) em Go usa um mapa onde você se importa apenas com as chaves, não com os valores. Como você precisa armazenar algo como o valor, os programadores Go usam uma struct vazia struct{}. Aqui está o padrão básico:

var mySet map[string]struct{}

A struct vazia struct{} é especial porque ocupa zero bytes de memória. Isso a torna perfeita para conjuntos (sets) onde você só precisa rastrear se algo existe ou não, sem desperdiçar memória com valores sem significado.

Esta abordagem aproveita a propriedade fundamental das chaves de um mapa: elas devem ser únicas. Quando você adiciona um item ao seu conjunto, você está, na verdade, adicionando uma chave ao mapa. A unicidade é imposta automaticamente pelo comportamento do mapa, fornecendo a você a verdadeira semântica de conjunto.

Nas próximas lições, você aprenderá como criar, manipular e trabalhar com conjuntos usando este padrão idiomático do Go. Esta técnica é amplamente utilizada em bases de código Go para rastrear itens exclusivos, implementar algoritmos e resolver problemas onde você precisa de testes de associação rápidos.

quiz iconTeste seus conhecimentos

Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.

quiz iconTeste seus conhecimentos

Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.

quiz iconTeste seus conhecimentos

Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.

Folha de consulta

Go não possui uma estrutura de dados de conjunto (set) integrada, mas utiliza mapas para simular conjuntos com o padrão idiomático:

var mySet map[string]struct{}

A struct vazia struct{} é usada como o tipo de valor porque ocupa zero bytes de memória. As chaves do mapa devem ser únicas, o que fornece automaticamente a semântica de conjunto para rastrear itens únicos.

Experimente você mesmo

Esta lição não inclui um desafio de código.

quiz iconTeste seus conhecimentos

Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.

Todas as lições de Lógica & Fluxo