Go es un lenguaje explícito y sencillo, facilita definir variables y constantes. Recordemos que al definir una variable especificamos 3 cosas:
- Tipo: Qué tipo de información se puede almacenar dentro de la variable.
- Dirección: Dónde se puede encontrar la variable en la memoria de la computadora. Normalmente hacemos referencia a esta dirección a través de un nombre, conocido como nombre de la variable.
- Valor: El valor almacenado dentro de la variable.
Nota: Sin variables, solo podríamos usar datos estáticos en nuestros programas que no podríamos modificar. Las variables nos permiten realizar tareas dinámicas, como obtener datos de los usuarios y volver a utilizar esos valores en diferentes operaciones.
Declaración de variables en Go
A continuación, vamos a definir una nueva variable de tipo numérico y entera en Go.
La palabra reservada var nos permite crear una variable de un tipo particular, le da un nombre y establece su valor inicial. Cada declaración tiene la forma general presentada en la imagen anterior. Si quisiéramos darle un valor inicial a la variable salario podemos escribir:
var salario int = 1000
Si quisiéramos declarar varias variables del mismo tipo podemos escribir:
var salario int
var descuentos int
var impuestos int
O podemos simplificarlo en una solo línea de la siguiente forma:
var salario, descuentos, impuestos int
La declaración de variables le permite omitir el tipo o el valor inicial, estos son opcionales. Pero si omite uno deble incluir el otro. Ejemplo:
Declaración completa, definimos el tipo y un valor inicial
var salario int = 1000
Declaración sin definir un valor inicial. Por defecto Go inicializa todos los variables con un valor inicial llamado zero-value, que para el caso de los enteros es cero.
var salario int
Declaración sin definir el tipo de dato. Go infiera el tipo a partir del valor inicial asignado.
var salario = 1000
Es posible declarar y opcionalmente inicializar un conjunto de variables en una sola declaración, con una lista de expresiones coincidentes. Ejemplo:
var variable1, variable2, variable3 = 1000, "Hola Go!", true
Tipos de datos básicos en Go
Go tiene varios tipos de datos básicos, como números enteros, flotantes, números complejos, cadenas, estructuras, entre otros. Estos pueden manipularse utilizando operadores de lenguaje, funciones integradas, funciones de biblioteca, entre otros.
Los cuatro tipos de números de Go son enteros, flotantes, números complejos y booleanos. En esta primera aproximación analizaremos un poco de ellos.
Tipo | Nombre en Go | Tamaño en bytes | Ejemplo |
Entero | int | 4 u 8 bytes | –999999 |
Entero | int64 | 8 bytes | 100000 |
Entero | int32 | 4 bytes | 555555 |
Entero | int16 | 2 bytes | 5000 |
Entero | int8 | 1 bytes | 255 |
Entero (alias) | byte | 1 byte | 255 |
Entero sin signo | uint | 4 u 8 bytes | 999999 |
Entero sin signo | uint64 | 8 bytes | 100000 |
Entero sin signo | uint32 | 4 bytes | 555555 |
Entero sin signo | uint16 | 2 bytes | 5000 |
Entero sin signo | uint8 | 1 byte | 255 |
Flotante | float32 | 4 bytes | 5.5 |
Flotante | float64 | 8 bytes | -99999.999 |
Cadena | string | "Esto es una cadena" |
Los tipos int y uint tienen un tamaño de 32 bits en máquinas con procesadores de 32 bits y 64 bits en procesadores de 64 bits. Cuando necesite un valor entero, debe usar int a menos que tenga una razón específica para usar un tipo de entero sin signo o con tamaño. Recuerde: Un int solo puede almacenar hasta el numero 4 mil millones en máquinas de 32 bits.
En Go el tipo de datos string se utiliza para cadenas de caracteres. Y para expresarla utilizamos las comillas dobles Ejemplo:
var variable1 = “ Esto es una cadena de caracteres entre comillas dobles ”
Las cadenas de caracteres "secuencias de escape y caracteres especiales". Estos caracteres especiales se usan dentro de cadenas y generan un efecto en el formato de la cadena. Las secuencias de caracteres que comienzan con una barra invertida y que se utilizan para representar otros caracteres se denominan secuencias de escape. Las secuencias de escape se utilizan generalmente para representar caracteres especiales, es decir, caracteres (como tabulación y nueva línea) que no tienen una representación imprimible estándar de un carácter.
Secuencia de escape | Caracter especial |
\' | Permite incluir una comilla sencilla en una cadena |
\" | Permite incluir una comilla doble en una cadena |
\ | Permite incluir un backslash en una cadena |
\n | Nueva linea |
\t | Tabulación |
Ejemplo:
fmt.Println(" Un héroe puede ser cualquiera. \n Incluso un hombre haciendo algo tan simple y tranquilizador como poner un abrigo alrededor de los hombros de un joven para hacerle saber que el mundo no ha terminado. \n\"Batman\" ")
Declaración corta o abreviada en Go
Se puede usar una forma alternativa llamada declaración de variable corta para declarar e inicializar variables locales. El operador es :=. La variable se declara y su valor y tipo se asignan todos junto con el operador :=. Cuando usa la declaración corta, Go no usará una asignación del zero-value.
velocidad := 299792.458
En el ejemplo anterior, la variable velocidad se declara, se le asigna el valor inicial 299792.458 y como este es flotante el tipo de dato de la variable sera float64.
Declaración múltiple
Go tiene muchos mecanismos de abreviación o de simplificación de la declaración de variables. En esta sección ilustramos otros mecanismos a través de ejemplos:
var(
variable1 int
variable2 = "Soy una cadena"
variable3 = true
variable4, variable5 = 5.5, "otra cadena"
)
variable1, variable2, variable3 := 999, "Hola Go", false
Algunas recomendaciones
Utilice una declaración larga cuando no pueda saber qué datos almacenar de antemano; de lo contrario, utilice una declaración corta.
Utilice las declaraciones múltiples cuando desee definir varias variables juntas o como una sugerencia para la legibilidad del código de que las variables se usarán juntas.
No puede utilizar declaraciones cortas fuera de las funciones, incluida la función principal.
Hacer que una variable sea accesible para otros paquetes (exportar el valor a otro paquete). Use una declaración larga o una declaración múltiple. Después de eso, debe escribir la primera letra de la variable en mayúscula, si la mantiene en minúscula, la variable será privada para otros paquetes.
Variable privada para otros paquetes:
var variable int = 1000
Variable publica para otros paquetes:
var Variable int = 1000
Constantes
Para definir una constante en Go utilizamos la palabra reservada const y asignamos el valor a dicha constante.
Constante especificando el tipo de dato:
const num-pi float64 = 3.141592
Constante sin especificar el tipo
const velocidad = 299792
Un ejemplo para cerrar
package main
import "fmt"
func main() {
const cpi1 float64 = 3.141592
const cpi2 = 3.141592
variable1 := 12
var variable2 int = 100
var variable3 int
fmt.Println("PI1: ", cpi1)
fmt.Println("PI2: ", cpi2)
fmt.Println("variable1: ", variable1)
fmt.Println("variable2: ", variable2)
fmt.Println("variable3: ", variable3)
}
Código en Git
En este repositorio en Git encontrara el ejemplo del tutorial con comentarios adicionales. https://github.com/jpadillaa/aprendiendo-go/blob/main/ejemplo2.go