Junior
¿Qué tipos de datos existen en Go?
sobes.tech AI
Respuesta de la IA
En Go existen cuatro categorías de tipos de datos:
-
Tipos básicos (Basic types) - predefinidos por el compilador.
- Booleanos:
bool - Numéricos:
- Enteros:
int,int8,int16,int32,int64,uint,uint8(byte),uint16,uint32,uint64,uintptr - De punto flotante:
float32,float64 - Complejos:
complex64,complex128
- Enteros:
- Cadenas:
string
- Booleanos:
-
Tipos compuestos (Aggregate types) - colecciones de tamaño fijo.
- Arrays:
[n]T(dondenes el tamaño,Tes el tipo de elementos) - Estructuras:
struct {}(colección de campos nombrados de diferentes tipos)
- Arrays:
-
Tipos de referencia (Reference types) - tipos de referencia, se pasan por referencia, almacenan un puntero a los datos base.
- Slices:
[]T(arreglo dinámico, basado en un array) - Mapas:
map[K]V(colección de pares clave-valor) - Punteros:
*T(almacenan la dirección de una variable) - Canales:
chan T,chan<- T,<-chan T(para sincronización y comunicación entre goroutines) - Funciones:
func(...) (...)(el tipo es la firma de la función)
- Slices:
-
Tipos de interfaz (Interface types) - definen un conjunto de firmas de métodos que los tipos de datos implementan.
- Interfaces:
interface{}(interfaz vacía),interface{ methodName(...) ... }
- Interfaces:
Ejemplos:
// Tipos básicos
var isTrue bool = true
var age int = 30
var price float64 = 19.99
var name string = "Go Gopher"
// Tipos compuestos
var numbers [5]int = [5]int{1, 2, 3, 4, 5} // Array
type Person struct { // Estructura
Name string
Age int
}
var p Person = Person{Name: "Alice", Age: 25}
// Tipos de referencia
var slice []int = []int{1, 2, 3} // Slice
var grades map[string]int = map[string]int{"Alice": 90, "Bob": 85} // Mapa
var ptr *int = &age // Puntero
var dataChan chan int = make(chan int) // Canal
var myFunc func(int) int = func(x int) int { return x * 2 } // Función
// Tipos de interfaz
var i interface{} = "anything" // Interfaz vacía
type Shape interface { // Interfaz
Area() float64
}