Go - Tutorial #3

Go: Constantes y variables

Go es un lenguaje explícito y sencillo, facilita definir variables y constantes. Recordemos que al definir una variable especificamos 3 cosas:

  1. Tipo: Qué tipo de información se puede almacenar dentro de la variable.
  2. 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.
  3. 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.

variables-go.jpg

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.

TipoNombre en GoTamaño en bytesEjemplo
Enteroint4 u 8 bytes–999999
Enteroint648 bytes100000
Enteroint324 bytes555555
Enteroint162 bytes5000
Enteroint81 bytes255
Entero (alias)byte1 byte255
Entero sin signouint4 u 8 bytes999999
Entero sin signouint648 bytes100000
Entero sin signouint324 bytes555555
Entero sin signouint162 bytes5000
Entero sin signouint81 byte255
Flotantefloat324 bytes5.5
Flotantefloat648 bytes-99999.999
Cadenastring"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 escapeCaracter especial
\'Permite incluir una comilla sencilla en una cadena
\"Permite incluir una comilla doble en una cadena
\Permite incluir un backslash en una cadena
\nNueva linea
\tTabulació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

  1. Utilice una declaración larga cuando no pueda saber qué datos almacenar de antemano; de lo contrario, utilice una declaración corta.

  2. 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.

  3. No puede utilizar declaraciones cortas fuera de las funciones, incluida la función principal.

  4. 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

Did you find this article valuable?

Support Jesse Padilla by becoming a sponsor. Any amount is appreciated!