Programación en Go. Mario Macías Lloret
Después de trabajar unos años en empresas, volví al mundo académico para trabajar y realizar mi doctorado en Arquitectura de Computadores en el Barcelona Supercomputing Center y en la Universitat Politécnica de Catalunya donde, además, tuve el privilegio de dar clases de programación durante 10 años. Al poco tiempo de volver al mundo empresarial, entré en contacto con Go, nada más entrar en la empresa de monitorización New Relic (newrelic.com).
He pretendido aunar en este libro mi pasión por la programación y mi pasión por la docencia. Solo me queda agradecerle su lectura, y esperar que lo disfrute tanto como yo disfruté escribiéndolo.
Capítulo 1
INSTALACIÓN Y USO DE GO
1.1 INSTALANDO GO
Go está disponible para descarga gratuita desde su página web:
En la página principal, haga clic en el enlace titulado “Download Go”, que le llevará a la página de descargas (Figura 1.1), donde encontrará los diversos paquetes para su sistema operativo (Windows, Linux, Mac).
Tan solo instale el paquete descargado y siga las instrucciones de instalación. Si la instalación ha tenido éxito, puede abrir una sesión de línea de comandos y verificar que el ejecutable go está en su ruta de programas:
$ go version go version go1.15 darwin/amd64
La instalación por defecto de Go consiste en:
• El compilador go, que le permite generar sus archivos ejecutables.
• Herramientas útiles para la programación: depuradores, analizadores de rendimiento, comprobadores de código...
• La biblioteca estándar de Go: una extensa colección de funcionalidades que usted puede incorporar en sus programas.
• La documentación estándar de Go, accesible a través del comando godoc.
Figura 1.1 Página web oficial de descargas de Go.
1.2 COMANDOS BÁSICOS DE GO
A continuación, se muestran algunos de los comandos más habituales de Go, que pueden serle de utilidad durante su proceso de aprendizaje:
• go build
– Ejecutándose desde el directorio raíz de su proyecto Go, genera un archivo ejecutable del proyecto.
• go run <archivo>.go
– Para ejecutar su programa de Go directamente, sin generar un ejecutable. Útil durante la etapa de desarrollo.
• go fmt ./...
– Ejecutándose desde el directorio raíz de su proyecto, reformatea todos los archivos de código fuente según el formato estándar de Go. Su uso es, si no obligado de facto, sí muy recomendable.
• go vet ./...
– Ejecutándose desde el directorio raíz de su proyecto, busca patrones de código susceptibles de ocasionar errores o comportamientos incorrectos.
• godoc
– Abre un servidor web en la dirección http://localhost:6060/. Si lo abre desde su navegador, podrá navegar localmente por toda la documentación de las diferentes bibliotecas estándar de Go, disponibles en la instalación por defecto.
• go get
– Permite descargar bibliotecas y utilidades de línea de comandos suministradas por terceros.
• go mod
– Permite gestionar sus proyectos locales, así como sus dependencias hacia bibliotecas de terceros.
1.3 EDITANDO SU CÓDIGO EN GO
Para programar en Go, tan solo necesita un editor de texto plano, como un bloc de notas. Sin embargo, es aconsejable utilizar un editor de código o un entorno integrado de desarrollo, que proporciona funcionalidades tales como resaltado de código, comprobación in situ de errores, depuración visual, etc.
Go es compatible con la gran mayoría de editores de código y entornos de desarrollo, directamente o a través de extensiones. La tabla de la Figura 1.2 enumera, por orden alfabético, algunos de los entornos más populares para el desarrollo de proyectos en Go. Aunque su editor favorito no esté en la tabla, es posible que ofrezca soporte básico o resaltado de sintaxis para Go.
Figura 1.2 Algunos editores y entornos de desarrollo populares para Go.
1.4 COMPILANDO Y EJECUTANDO SU PRIMER PROGRAMA
Comenzaremos a familiarizarnos con Go y sus herramientas mediante la creación y compilación de un programa básico. No se preocupe si no entiende todo su contenido, ya que será explicado en profundidad en los próximos capítulos.
Para empezar, abra un editor de texto plano y cree un archivo cuya extensión sea .go. Por ejemplo, hola.go. Copie el siguiente contenido:
Del código anterior, quizás haya podido deducir algunos de los siguientes componentes de un programa básico en Go:
• El punto de entrada del programa se marca mediante func main() {. El programa comenzará ejecutando el código contenido en el bloque delimitado por llaves { y }.
• Cada fichero está encabezado por una directiva package, que otorga un nombre común para la agrupación (paquete) de todos los archivos Go en un directorio. El punto de entrada del programa debe estar encabezado por package main (paquete principal).
• Cuando se incorporan funcionalidades de la biblioteca estándar o de otras bibliotecas de terceros (por ejemplo, para mostrar un mensaje en pantalla), deben incorporarse explícitamente los paquetes que las contienen mediante la directiva import. En el programa de ejemplo, la directiva import "fmt” permite usar funcionalidades de escritura de mensajes en pantalla (entre otras).
• Cualquier texto escrito después de dos barras // es ignorado por el compilador hasta el final de la línea. Allí puede dejar algunos comentarios que ayuden a documentar o entender el código.
– Puede usar comentarios de múltiples líneas si los sitúa entre los símbolos /* y */.
• El comando fmt.Println muestra un mensaje en pantalla. Está compuesto por el nombre del paquete en el que está guardado (fmt) y el nombre de la función Println. Entre paréntesis, se escribe el texto a mostrar (que debe ir entre comillas dobles).
Para saber más sobre Println y sobre el paquete fmt, puede probar a ejecutar el comando godoc en su línea de comandos. Se ejecutará un servidor web local en el que puede abrir la siguiente dirección en su navegador:
http://localhost:6060/pkg/fmt
Dicha