Junior
Quais são as principais estruturas de dados em Go?
sobes.tech IA
Resposta da IA
No Go, existem as seguintes estruturas de dados principais (primitivas) e compostas (composite):
Primitivas:
- Booleanos (
bool) - Tipos numéricos:
- Inteiros (
int,int8,int16,int32,int64,uint,uint8,uint16,uint32,uint64,uintptr) - Números de ponto flutuante (
float32,float64) - Números complexos (
complex64,complex128) - Byte (
byte- alias deuint8) - Rune (
rune- alias deint32, representa um carácter Unicode)
- Inteiros (
- Strings (
string)
Compósitos:
- Arrays (
array)- Tamanho fixo.
var arr [5]int // array de 5 inteiros - Slices (
slice)- Tamanho dinâmico, baseado em arrays.
var s []int // slice não inicializado s = make([]int, 5, 10) // slice de comprimento 5 com capacidade 10 - Mapas (
map)- Coleção não ordenada de pares chave-valor.
m := make(map[string]int) // mapa com chaves string e valores int - Structs (
struct)- Coleção tipada de campos.
type Person struct { Name string Age int } - Ponteiros (
pointer)- Guardam o endereço de uma célula de memória.
var x int = 10 var p *int = &x // p aponta para x - Funções (
func)- Em Go, as funções são tipos de primeira classe.
type MyFunc func(int) string // tipo de função - Canais (
channel)- Usados para sincronização e troca de dados entre goroutines.
ch := make(chan int) // canal sem buffer para int - Interfaces (
interface)- Representam um conjunto de métodos que um tipo deve implementar.
type Reader interface { Read(p []byte) (n int, err error) }
Também vale a pena mencionar outros tipos compostos importantes, como:
- Slices de bytes (
[]byte) - Slices de runas (
[]rune)
Estas estruturas de dados proporcionam flexibilidade e desempenho para uma ampla gama de tarefas em Go.