Go - Tutorial #2

Go: Sintaxis básica, estilo de indentación y proceso de compilación

Go es un lenguaje de programación compilado. Antes de ejecutar un programa, Go usa un compilador para convertir su programa a instrucciones binarias de maquina (1s y 0s). Go compila todo su código en un solo ejecutable para que lo ejecute o lo distribuya.

Durante este proceso, el compilador de Go puede detectar diferentes tipos de errores, como los errores de sintaxis. Go facilita usar la memoria de manera eficiente, fácil y menos propenso a errores que otros lenguajes. Go es un lenguaje capaz de aprovechar todos los núcleos de un procesador.

Entre las historias de éxito suelen citar la mejora en eficiencia y desempeño Iron.io, caso en el que ellos pudieron reemplazar 30 servidores que ejecutaban Ruby con 2 servidores que usaban Go (consulte referencia 1 y referencia 2).

Bitly reporta ganancias de rendimiento consistentes y medibles, al reescribir aplicaciones de Python en Go, y posteriormente reemplazó sus aplicaciones C con Go (consulte referencia 3).

Go se caracteriza por ofrecerle al desarrollador el disfrute y la facilidad de los lenguajes interpretados, con la eficiencia y confiabilidad de un lenguaje compilado. Como lenguaje pequeño, con solo unos pocos conceptos simples, Go es relativamente rápido de aprender. Estos tres principios forman el lema de Go:

Go es un lenguaje de programación de código abierto que permite la producción de software simple, eficiente y confiable a escala. Go Brand Book

Nota: En Internet es comun hablar de Golang cuando nos referimos a Go.

Un primer programa en Go

Para entender la estructura y la sintaxis básica un programa en Go, analicemos el siguiente bloque de código:

// Esto es un comentario de una sola línea 

// Declara el paquete al que pertenece este código
package main 

// import nos permite importar paquetes para su uso en nuestro código 
import (     
    // Hace que el paquete fmt (formato) esté disponible para su uso en nuestro código 
    "fmt"    
)

// Declara una función llamada main
func main() {
    // Imprime una cadena en pantalla 
    fmt.Println("Na Na Na Na Na Na Na Na Go!") 
}

Este bloque de código nos presenta tres palabras clave de Go: package, import y func. Cada palabra clave está reservada para un propósito especial.

La palabra clave package declara el paquete al que pertenece este código, en este caso un paquete llamado main. Todo el código de Go está organizado en paquetes.

Go proporciona una biblioteca estándar compuesta por paquetes para matemáticas, criptografía, manipulación de imágenes, entre otros. Cada paquete corresponde a una sola idea o un concepto.

La siguiente línea usa la palabra clave de import para especificar los paquetes de la libreria estandar, propios o de terceros usará este código. Los paquetes contienen cualquier número de funciones. Ejemplo, el paquete math proporciona funciones como Sqrt (raíz cuadrada). El paquete fmt utilizado en este bloque de código proporciona funciones para entrada y salida formateadas.

La palabra clave func declara una función, en este caso una función llamada main. El cuerpo de cada función está entre llaves {}, que es la forma en que Go sabe dónde comienza y termina cada función.

El identificador main es importante. Cuando ejecuta un programa escrito en Go, la ejecución comienza en la función main del paquete main. Sin main, el compilador de Go informará de un error, porque no sabe dónde está el programa.

Para imprimir una línea de texto en pantalla, puede usar la función Println de muchas opciones disponibles. Println imprime una cadena de texto en una linea de pantalla. Println tiene el prefijo fmt seguido de un punto, esto se debe a que esta función la proporciona el paquete fmt.

Nota: Cada vez que utiliza una función de un paquete importado, la función tiene como prefijo el nombre del paquete y un punto.

La importancia de ubicar bien las { }

La sintaxis de Go es exigente con la colocación de las llaves { }. En el programa anterior la llave de apertura { está en la misma línea que la palabra clave func, mientras que la llave de cierre } está en su propia línea. Go utiliza el estilo de indentación 1TBS (OTBS) (consulte Referencia 4).

Aunque no es algo en lo que ahondaremos, antes Go utilizaba el punto y coma ; para finalizar las líneas de código. En 2009, se retiró el punto y coma del lenguaje. En realidad, el compilador de Go inserta los puntos y comas en lugar del programador y funciona perfectamente, pero a cambio se debe respetar el estilo 1TBS (OTBS).

Si coloca una llave de apertura en una línea separada de la palabra clave func, el compilador Go informará un error de sintaxis:

func main() 
{
    fmt.Println("Na Na Na Na Na Na Na Na Go!")
}

.\main.go: missing function body
.\main.go: syntax error: unexpected semicolon or newline before {

¿Por qué un error de sintaxis? Se genera un error de sintaxis porque el compilador insertó un punto y coma en el lugar equivocado.

Proceso de compilación

Para compilar y ejecutar el programa escrito en Go, abra una terminal (Puede utilizar visual studio code (Tutorial Go + VSCode) y ejecute los siguientes comandos:

Para Windows:

go build main.go
main.exe

Para GNU/Linux:

go build main.go
./main

Para ejecutar solamente, es decir, compila automáticamente y ejecutar, utilice los comandos:

go run main.go

La instrucción anterior compila el programa y almacena el ejecutable en un directorio temporal.

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/ejemplo1.go

Did you find this article valuable?

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