Skip to content

The variables and the constantes in GO

#Go

#Golang

#variables

#constantes

Published on May 18, 2022

·

4 min read

The first thing we need to see is what a variable looks like in GO.Link to this heading

var greetings string = "Welcome to Picadores de codigo!"

we can see that the declaration of the variables has the following structure

var name type = expression

vemos que inicia con la palabra reservada var, luego el nombre de la variable, luego el tipo de dato luego el = y por último el valor que le vayamos a asignar.

Veamos un ejemplo en una funciónLink to this heading

package main

import "fmt"

func main(){
  var greetings string = "Welcome to Picadores de codigo!"
  fmt.Println(greetings)
}

// Esto imprime Welcome to Picadores de codigo!

Algunas cosas a tener en cuentaLink to this heading

  • Los tipos de datos son fijos es decir que una variable no puede cambiar son tipo de dato durante su ciclo de vida.
  • Podemos declarar o iniciar una variable sin asignarle un valor.
var greetings string
  • Los valores iniciales de las variables a las cuales no se les ha asignado ningún valor son los siguientes: en los tipos numéricos inician en 0, los tipos string inician en vacio “”, los tipos boolean inician en falso, los demás tipos inician en nil (nulo).

  • Se puede asignar en GO un grupo de variables de la siguiente manera:

var (
  nombre tipo
  nombre2 tipo
  nombre3 tipo
)
  • Ej: asignandoles valor:
var (
  a = 1
  b = “hola”
  c = true
)
  • Las variables pueden ser declaradas dentro de una función o por fuera de las funciones. Las que son declaradas dentro de una función se llaman variables locales, las que son declaradas por fuera de una función se llaman variables globales estas tienen "Package Visibility" las mismas pueden ser usadas en cualquier archivo .go que pertenezca al mismo paquete. Y aquellas variables declaradas a nivel de paquete que sean declaradas con una letra mayúscula al principio, son variables públicas que pueden ser accedidas desde cualquier paquete.

  • Una cosa importante a tener en cuenta es que GO no permite la declaración de variables que no sean usadas.

Modo corto de declarar variablesLink to this heading

  • Las variables locales (recordemos las declaradas dentro de las funciones) pueden ser declaradas con la manera corta de GO para declarar variables
greetings := "Hello"

El motor de GO analiza la variable y asigna el tipo de dato correspondiente

  • También se puede asignar un grupo de variables de la manera corta de la siguiente manera
nombre1, nombre2, nombre3 := 10, "Hola", true

Nombrando variables en GO: Buenas prácticasLink to this heading

El nombrado de las variables en GO es bastante flexible, pero aqui van algunas reglas para tener en cuenta:

  • Los nombres de las variables deben ser de una palabra (no se permiten espacios)
  • Los nombres de las variables pueden contener solo letras, números y guion bajo _
  • Los nombres de las variables no pueden empezar con un número.

A continuación te dejo una tabla con ejemplos de diferentes casos:

Válido Inválido Porque es inválido
firstName first-name No se permiten guiones medio (-)
age18 18age No puede inciar con un número
lastName $lastName No se pueden usar símbolos
userName user name No puede haber espacios

Que una variable este en PascalCase tiene un significado especial para GO, esto genera que la variable sea accesible por otros paquetes. EJ:

var FirstName string // accesible por otros paquetes (PascalCase)
var firstName string // NO accesible por otros paquetes (CamelCase)

Reasignación del valor de una variableLink to this heading

Como su nombre lo dice nosotros podemos variar el valor de una variable. Veamos un ejemplo

package main

import "fmt"

func main() {
    name := "Diego"
    fmt.Println(i)

    name = "Juan"
    // Un importante detalle es que la reasingnación se lográ con =
    // si lo hacemos con := esto nos generará un error de compilación
    fmt.Println(i)
}

// Imprime
Diego
Juan

Algo que no podemos hacer es reasignar un valor de otro tipo veamos un Ej

yearOfBirth := 1993
yearOfBirth = "1994"

Esto nos generará un error de compilación

// Imprime
cannot use "1994" (type string) as type int in assignmen

ConstantesLink to this heading

Las constantes son como las varias exepto que no se puede reasignar su valor después que han sido definidas Para declarar una constante debemos simplemente usar esta sintaxis

const name = "picadoresDeCodigo"

Gracias por leer 🙌Link to this heading