Declaración y uso de variables

Completado

Vamos a comenzar este módulo examinando cómo se declaran y cómo se usan las variables en Go. Hay varias maneras de declarar una variable. Veremos cada una de ellas y escogerá la que mejor se adapte a sus necesidades o a su estilo. A medida que exploremos los conceptos básicos de las variables, destacaremos algunas características específicas de Go que no suelen presentar otros lenguajes de programación.

En esta sección, se incluyen fragmentos de código que se pueden ejecutar en Visual Studio Code o en el área de juegos de Go.

Declaración de variables

Para declarar una variable, se usa la palabra clave var:

var firstName string

La instrucción anterior declara una variable denominada firstName de tipo string. Hablaremos de los tipos de datos en la próxima sección. En este ejemplo se muestra la manera más sencilla de declarar una variable. Si quiere declarar otra variable, simplemente agregue una instrucción similar a la anterior. Puede declarar más de una variable en una sola línea si son del mismo tipo:

var firstName, lastName string

Agregar una coma (,) después de un nombre de variable indica que se va a declarar otra variable. En este caso, la instrucción anterior declara dos variables denominadas firstName y lastName de tipo string. Si quiere agregar una tercera variable de tipo int, el código tendrá el siguiente aspecto:

var firstName, lastName string
var age int

Otra forma de escribir la instrucción anterior es usar paréntesis después de la palabra clave var, como si tuviera un bloque dedicado para declarar variables:

var (
    firstName, lastName string
    age int
)

Inicialización de variables

Hasta ahora solo ha declarado variables, pero habrá ocasiones en las que necesite tener un valor inicial. En Go, puede inicializar las variables de varias formas. De este modo, partiendo del ejemplo anterior, podría inicializar cada variable mediante el siguiente código:

var (
    firstName string = "John"
    lastName  string = "Doe"
    age       int    = 32
)

Si decide inicializar una variable, no es necesario que especifique su tipo porque Go lo infiere al inicializar la variable con un valor. Por ejemplo, puede declarar e inicializar variables de esta manera:

var (
    firstName = "John"
    lastName  = "Doe"
    age       = 32
)

Go infiere que las variables firstName y lastName son de tipo string y que la variable age es de tipo int.

Diferentes maneras de inicializar variables

En Go, puede declarar e inicializar las variables en una sola línea. Separe cada nombre de variable con una coma y haga lo mismo para cada valor (en el mismo orden), como se muestra a continuación:

var (
    firstName, lastName, age = "John", "Doe", 32
)

Hay otra manera de declarar e inicializar variables. Este método es la forma más habitual de hacerlo en Go. El mismo ejemplo que hemos usado anteriormente tendría un aspecto similar a este:

package main

import "fmt"

func main() {
    firstName, lastName := "John", "Doe"
    age := 32
    fmt.Println(firstName, lastName, age)
}

Nota:

Observe la import "fmt" instrucción. Usamos la palabra clave import para incluir el contenido de un paquete en el ámbito. Vamos a importar el paquete "fmt" para que podamos usar el método Println en el código. Echaremos un vistazo más de cerca a esta palabra clave en una unidad posterior.

Ejecute el código anterior para confirmar que esta otra manera de declarar e inicializar variables funciona.

Tenga en cuenta que aquí debe incluir dos puntos seguidos de un signo igual (:=) y el valor correspondiente justo después de definir el nombre de la variable. Cuando se usan los dos puntos con el signo igual, la variable que se está declarando tiene que ser una nueva. Si usa dos puntos con un signo igual para una variable que ya se ha declarado, el programa no se compilará. Agregue la edad como constante (vea la siguiente sección), pero use los dos puntos con el signo igual (:=) y pruébelo.

Por último, solo puede usar los dos puntos seguidos de un signo igual dentro de una función. Para declarar variables fuera de una función, debe usar la palabra clave var. No se preocupe si no está familiarizado con las funciones, las trataremos en una unidad posterior.

Declaración de constantes

Habrá ocasiones en las que necesite incluir valores estáticos en el código, conocidos como constantes. Go admite el uso de constantes. La palabra clave que se usa para declararlas es const.

Por ejemplo, puede declarar una constante de la siguiente forma:

const HTTPStatusOK = 200

Igual que con las variables, el tipo de constante se deduce a partir del valor que se le asigna. En Go, los nombres de las constantes normalmente se escriben con una combinación de mayúsculas y minúsculas o con todas las letras en mayúscula.

Si necesita declarar varias constantes en un bloque, puede hacerlo de la siguiente manera:

const (
    StatusOK              = 0
    StatusConnectionReset = 1
    StatusOtherError      = 2
)

Nota:

Go tiene un concepto interesante relacionado con las constantes llamado iota, el cual no se cubre en este módulo, pero puede obtener más información al respecto en la wiki de Go en GitHub. Tenga en cuenta que iota es una palabra clave que se usa en Go para simplificar la definición de constantes cuando los valores son secuenciales.

Aunque hay similitudes entre las constantes y las variables, también hay algunas diferencias clave. Por ejemplo, puede declarar constantes sin usarlas y no recibirá un mensaje de error. No se pueden usar los dos puntos con el signo igual para declarar constantes. Si lo hace, Go se quejará.

Errores de Go por declarar variables y no usarlas

Hay algo fundamental que debe tener en cuenta en Go. Cuando se declara una variable y no se usa, Go genera un error y no una advertencia como en otros lenguajes de programación.

A modo de ilustración, volvamos a uno de los ejemplos anteriores y eliminemos la llamada a fmt.Println:

func main() {
    firstName, lastName := "John", "Doe"
    age := 32
}

Cuando ejecute este código en Visual Studio Code o en el área de juegos de Go, obtendrá un error en las líneas en las que declara las variables. Verá los siguientes mensajes de error:

./main.go:4:2: firstName declared but not used
./main.go:4:13: lastName declared but not used
./main.go:5:2: age declared but not used

Tenga en cuenta que debe usar cada variable declarada en Go en algún lugar.