Hello Go-rld!
Introducción
En otra entrada, introducía de forma genérica lo que es Go o Golang, así como algunas de sus características más destacadas.
A partir de esta entrada, voy a empezar a escribir ejemplos de código sueltos, muy sencillos todos ellos, y que nos permitan introducirnos en el lenguaje de forma gradual.
En esta entrada escribiré y explicaré el típico ejemplo ‘Hola Mundo’ al que he denominado como ‘Hello Go-rld’ en un pequeño juego de palabras.
Vamos allá.
Creando nuestro fichero de ejemplo
Lo primero que deberemos hacer es crear una carpeta en la que guardaremos nuestro código fuente.
En mi caso he creado una carpeta principal llamada src, y dentro de ella, otra carpeta que he llamado Hello Go-rld.
Y finalmente y dentro de esa carpeta, nuestro código, en mi caso un fichero de nombre main.go.
A continuación, vamos a escribir nuestro primer ejemplo en Go.
Packages
El código de una aplicación Go empieza por la palabra reservada package seguida del nombre que le daremos a nuestro paquete.
package <name>
En nuestro ejemplo, esta parte del código queda como:
package main
La primera cosa a indicar aquí, es que como puedes apreciar, no existen caracteres de final de instrucción, como por ejemplo en C# en el que usamos ;
Otro aspecto muy destacable es el nombre main.
Éste identifica el comienzo de nuestro código de Go. Y ese comienzo será siempre main.
Y finalmente, hablar del nombre del fichero main.go. Aunque el nombre de nuestro fichero puede ser el que consideremos oportuno, es una convención generalmente aceptada, el utilizar main como nombre de fichero. Así que si ves en el repositorio de código main.go, identificarás rápidamente el fichero de todo tu repositorio dónde está el root o comienzo de la aplicación.
A continuación, indicaremos los paquetes que vamos a utilizar importándolos.
Go nos ofrece una extensa cantidad de paquetes que podemos utilizar. Conviene conocerlos todos, pero esto es algo que iremos aprendiendo al mismo tiempo que experimentemos en el lenguaje.
También podremos crear nuestros propios paquetes Go para reutilizarlos, pero ahora no nos vamos a detener en este punto.
Únicamente indicar dónde podemos consultar estos paquetes, que encontrarás en este enlace.
Y tampoco es válido en Go indicar todos los paquetes que consideremos por si acaso los utilizamos, ya que Go compilará nuestro código, y si importamos un paquete que no usamos, Go nos devolverá un error de compilación.
Para importar un paquete, podemos hacerlo de dos formas.
En el caso de que sólo estemos importando un paquete, podemos hacerlo de esta manera:
import "fmt"
Pero si estamos importando más de un paquete, lo haremos de esta otra forma:
import ( "fmt" "time" )
En nuestro caso, lo haremos de la primera forma.
Date cuenta también, que cuando trabajamos con más de un paquete, hemos agregado éstos entre paréntesis.
Resumiendo hasta aquí, nuestro código tiene este aspecto:
package main import "fmt"
A continuación, vamos a escribir la función principal de nuestro programa.
main function
La función main residirá siempre dentro del paquete main.
Anteriormente hemos declarado nuestro paquete como main, y hemos importado el paquete fmt que vamos a utilizar. Este paquete deriva de formatted, y nos va a permitir escribir texto en la consola.
Una función en Go utiliza la palabra reservada func para identificarla como tal.
Nuestra función main se llamará por lo tanto func main, y se trata de una función especial.
El contenido de la función irá entre llaves { y }.
func main { // Code }
Aprovechando el ejemplo, comentaré que los comentarios en Go se realizan con los caracteres // o bien si son líneas de comentarios, entre / y /.
Finalmente y dentro de las llaves escribiré mi código, que en mi caso, será escribir en la salida de la consola un texto.
Operación que llevaremos a cabo a través del paquete fmt y la función Println de ese paquete.
La nomenclatura tipo para utilizar la función de un paquete será de la forma:
<package>.<function>()
Por ejemplo:
fmt.Println("Hello Go-rld!")
Resumiendo, el código de nuestra función quedará de la forma:
func main() { fmt.Println("Hello Go-rld!") }
Código completo
El ejemplo completo que acabo de explicar en la entrada queda de la forma:
package main import "fmt" func main() { fmt.Println("Hello Go-rld!") }
Ejecutando nuestro código
Para ejecutar nuestro código, dentro de la consola y situados en la carpeta en la que se encuentra nuestro fichero main.go, vamos a escribir la instrucción:
go run main.go
En la consola, deberemos obtener la información devuelta por la función Println y que consiste en escribir el texto Hello Go-rld.
Ahora bien, si queremos crear el binario de nuestra aplicación (.exe en Windows), deberemos escribir el comando:
go build
De esta manera, Go generará nuestro fichero ejecutable que podremos distribuir y desplegar.
El comando anterior, creará el ejecutable en el mismo directorio en el que estamos compilando nuestro código.
Hay más aspectos a destacar sobre el proceso de compilación, pero no voy a entrar en ellos ahora mismo.
Podrás encontrar este ejemplo en mi repositorio de GitHub.
También podrás ver y ejecutar el código del ejemplo en este enlace que te llevará a Go Playground directamente.
Happy Coding!