Junior
¿Cuáles son las principales estructuras de datos en Go?
sobes.tech AI
Respuesta de la IA
En Go, existen las siguientes estructuras de datos básicas (primitivas) y compuestas (composite):
Primitivas:
- Booleanos (
bool) - Tipos numéricos:
- Enteros (
int,int8,int16,int32,int64,uint,uint8,uint16,uint32,uint64,uintptr) - Números de punto flotante (
float32,float64) - Números complejos (
complex64,complex128) - Byte (
byte- alias deuint8) - Rune (
rune- alias deint32, representa un carácter Unicode)
- Enteros (
- Cadenas (
string)
Compuestas:
- Arrays (
array)- Tamaño fijo.
var arr [5]int // array de 5 enteros - Slices (
slice)- Tamaño dinámico, basados en arrays.
var s []int // slice no inicializado s = make([]int, 5, 10) // slice de longitud 5 y capacidad 10 - Mapas (
map)- Colección no ordenada de pares clave-valor.
m := make(map[string]int) // mapa con claves string y valores int - Structs (
struct)- Colección tipada de campos.
type Person struct { Name string Age int } - Punteros (
pointer)- Guardan la dirección de una celda de memoria.
var x int = 10 var p *int = &x // p apunta a x - Funciones (
func)- En Go, las funciones son tipos de primera clase.
type MyFunc func(int) string // tipo de función - Canales (
channel)- Se usan para sincronización e intercambio de datos entre goroutines.
ch := make(chan int) // canal sin búfer para int - Interfaces (
interface)- Representan un conjunto de métodos que un tipo debe implementar.
type Reader interface { Read(p []byte) (n int, err error) }
También vale la pena mencionar otros tipos compuestos importantes, como:
- Slices de bytes (
[]byte) - Slices de runas (
[]rune)
Estas estructuras de datos proporcionan flexibilidad y rendimiento para una amplia gama de tareas en Go.