Fundamentos de los tipos numéricos en Go
Go es un lenguaje de programación de tipado estático, lo que significa que las variables deben declararse con un tipo de dato específico. En Go, hay varios tipos numéricos que se pueden utilizar para representar diferentes tipos de valores numéricos. Comprender los fundamentos de estos tipos numéricos es crucial para escribir código Go eficiente y correcto.
Tipos de enteros en Go
Go proporciona varios tipos de enteros, incluyendo int8
, int16
, int32
, int64
, uint8
, uint16
, uint32
y uint64
. También están disponibles los tipos int
y uint
, que son dependientes de la plataforma y pueden ser de 32 bits o 64 bits, dependiendo de la arquitectura del sistema.
A continuación, se muestra un ejemplo de cómo declarar y utilizar tipos de enteros en Go:
package main
import "fmt"
func main() {
var a int8 = 127
var b int16 = 32767
var c int32 = 2147483647
var d int64 = 9223372036854775807
fmt.Println("a:", a)
fmt.Println("b:", b)
fmt.Println("c:", c)
fmt.Println("d:", d)
}
Este código generará la siguiente salida:
a: 127
b: 32767
c: 2147483647
d: 9223372036854775807
Tipos de punto flotante en Go
Go también proporciona dos tipos de punto flotante: float32
y float64
. Estos tipos se utilizan para representar números decimales.
A continuación, se muestra un ejemplo de cómo declarar y utilizar tipos de punto flotante en Go:
package main
import "fmt"
func main() {
var a float32 = 3.14
var b float64 = 3.14159265358979
fmt.Println("a:", a)
fmt.Println("b:", b)
}
Este código generará la siguiente salida:
a: 3.14
b: 3.14159265358979
Declaración e inferencia de tipos
En Go, se pueden declarar variables especificando o no explícitamente el tipo. Cuando no se especifica el tipo, Go lo inferirá en función del valor asignado a la variable.
A continuación, se muestra un ejemplo:
package main
import "fmt"
func main() {
var a = 42 // a se infiere como un int
var b = 3.14 // b se infiere como un float64
c := "hello" // c se infiere como una string
d := 42.0 // d se infiere como un float64
fmt.Println("a:", a)
fmt.Println("b:", b)
fmt.Println("c:", c)
fmt.Println("d:", d)
}
Este código generará la siguiente salida:
a: 42
b: 3.14
c: hello
d: 42