Tipos de datos en Go

Francisco Suarez
GDSC Patagonia

--

Los tipos de datos nos permiten especificar el contenido que se puede almacenar en una variable o constante así como también saber que operaciones podemos hacer con estas.

Dando un paso atrás y yendo a nuestro día a día, nosotros interactuamos con tipos de datos constantemente, desde el momento que estamos realizando un pago y este se denota con una coma o por ejemplo cuando llamamos a alguien por su nombre, este es un dato el cual solo tiene permitido letras.

Antes de entrar a ver tipos tenemos que hablar de un tema que es muy importante, las arquitecturas sobre las cuales queremos que el valor se base, esto nos ayuda a optimizar nuestros sistemas y así obtener una mejor performance a la hora de ejecutarlos.

Tenemos la posibilidad de usar una de las siguientes arquitecturas:

  • 8 bits
  • 16 bits
  • 32 bits
  • 64 bits

Si nosotros no especificamos una, automáticamente Go nos asigna la que tengamos en nuestro sistema operativo, es decir que si tenemos una computadora con una arquitectura de 64 bits automáticamente nos asignara esta para todas las variables o constantes a usar.

Pensemos en que los tipos de datos no solo influye en las operaciones que podemos realizar con cada uno de ellos, sino tambien en la velocidad de procesamiento.

En esta guía veremos los cuatro tipos de datos más básicos:

  • Integer (enteros)
  • Float (números reales)
  • Booleanos (true, false)
  • String (cadenas)

Enteros (Integer)

Como en las matemáticas los números enteros son valores en los cuales pertenecen valores negativos, positivos y el numero cero. En Go así como en otros lenguajes de programación denotamos estos con la palabra reservada int este tipo de dato no permite el uso de valores con una coma dentro.

A modo ejemplo:

fmt.Println(10)

Salida

10

Si bien de esta manera nosotros estamos mostrando un mensaje con un valor de tipo entero, lo que podemos hacer también y tiene mucho más uso es almacenar este valor en una variable o constante para luego poder manipularlo o usarlo.

var diez int = 10
fmt.Println(diez)

Salida

10

Ahora volviendo al tema de la arquitectura podríamos utilizar cualquiera de los siguientes tipos.

int8  //Desde -128 a 127
int16 //Desde -32768 a 32767
int32 //Desde -2147483648 a 2147483647
int64 //Desde -9223372036854775808 a 9223372036854775807

unint8 //desde 0 a 255
unint16 //desde 0 a 65535
unint32 //desde 0 a 4294967295
unint64 //desde 0 a 18446744073709551615

Ejemplo

var edad unint8 = 22

Números reales o punto flotante

Estos al igual que los números enteros ocupan valores negativos y positivos pero con la unica diferencia es que podemos obtener valores con punto, a diferencia de los enteros con estos números obtenemos una precision mayor.

fmt.Println(15.4)

Salida

15.4

Algo a tener en mente con estos valores es la diferencia, 1.0 es totalmente diferente a 1 asi como también 20.0 es diferente a 20, recordemos que los valores que incluyen un punto . es un numero real y los que no lo tienen son valores enteros.

Al igual que en los enteros tenemos diferentes tamaños en los float.

float32 // Desde -2147483648 a 2147483647
float64 // Desde -9223372036854775808 a 9223372036854775807

Dado que es casi imposible aprenderse estos rangos de valores permitidos, Go nos brinda una forma de poder recordarlos en cualquier momento.

package main

import (
"fmt"
"math"
)

func main() {
fmt.Println(math.MaxFloat32) //Float32
fmt.Println(math.MaxFloat64) //Float64
}

Booleanos

No solo tenemos datos que nos permiten realizar operaciones con números, sino que tambien tenemos valores logicos o booleanos. Este se usa mediante la palabra reservada bool el cual le indica a la variable o constante que vamos a trabajar con dos tipos de valores posibles true o false.

var estado bool = true
var estadoDeCompra bool = false

Vamos a usar este tipo de dato cuando trabajemos con flujos de datos y necesitemos tomar una decisión basada en un estado puntual.

String o Cadena

Este tipo de dato es el más usado o más común en el día a día de cualquier persona que programe en Go o en algún otro lenguaje. Las cadenas se crean mediante la palabra reservada string, el valor se define mediante comillas dobles "valor"o simples 'v' en el caso de estas ultimas las usamos para caracteres individuales.

var nombre string := "John"
var apellido string := "Doe"
fmt.Println(nombre, apellido)

Podemos usar \n para generar un salto de linea entre variables o textos \' para comillas simples o \" para comillas dobles.

Predeterminados

En la programacion muchas veces tenemos que declarar variables sin ningun valor dado que en un futuro podriamos asignarle uno. Para estos casos es bueno saber los valores preterminados que tienen los tipos de datos dado que pueden afectar el flujo de nuestro problema.

  • Para tipos enteros: 0
  • Para tipos float: 0.000000
  • Para tipos boolean: false
  • Para tipos string: "" valor vacio

Espero que les sirva y puedan seguir aprendiendo Go/Golang!

Muchas gracias por leer!

Instagram | Twitter GDSC Patagonia | Twitter Francisco

--

--

Francisco Suarez
GDSC Patagonia

📚Computer Science Student 🚀 JavaScript Developer 🐱‍🚀 @reactjs @nodejs 🐱‍🏍 GDSC Lead🛸 and Contributor at MDN 🔥