Site Overlay

Tu primer programa

Tradicionalmente el primer programa que escribes en cualquier lenguaje de programación se llama programa «Hola Mundo» – un programa que simplemente da salida a Hello World en tu terminal. Vamos a escribir uno usando Go.

Primero crea una nueva carpeta donde podamos almacenar nuestro programa. Crea una carpeta llamada ~/src/golang-book/chapter2. (Donde ~ significa tu directorio personal) Desde la terminal puedes hacerlo introduciendo los siguientes comandos:

mkdir src/golang-bookmkdir src/golang-book/chapter2

Usando tu editor de texto escribe lo siguiente:

package mainimport "fmt"// this is a commentfunc main() { fmt.Println("Hello World")}

Asegúrate de que tu archivo es idéntico al que se muestra aquí y guárdalo como main.go en la carpeta que acabamos de crear. Abre un nuevo terminal y escribe lo siguiente:

cd src/golang-book/chapter2go run main.go

Deberías ver Hello World en tu terminal. El comando go run toma los archivos subsiguientes (separados por espacios), los compila en un ejecutable guardado en un directorio temporal y luego ejecuta el programa. Si no has visto Hello World en la pantalla, es posible que hayas cometido un error al escribir el programa. El compilador Go le dará pistas sobre dónde está el error. Como la mayoría de los compiladores, el compilador de Go es extremadamente pedante y no tolera los errores.

Cómo leer un programa Go

Veamos este programa con más detalle. Los programas Go se leen de arriba a abajo, de izquierda a derecha. (como un libro) La primera línea dice esto:

package main

Esto se conoce como «declaración de paquete». Todo programa Go debe comenzar con una declaración de paquete. Los paquetes son la forma que tiene Go de organizar y reutilizar el código. Hay dos tipos de programas Go: ejecutables y bibliotecas. Los ejecutables son el tipo de programas que podemos ejecutar directamente desde el terminal. (en Windows terminan con .exe) Las bibliotecas son colecciones de código que empaquetamos para poder utilizarlas en otros programas. Exploraremos las bibliotecas con más detalle más adelante, por ahora sólo asegúrate de incluir esta línea en cualquier programa que escribas.

La siguiente línea es una línea en blanco. Los ordenadores representan las nuevas líneas con un carácter especial (o varios caracteres). Las nuevas líneas, los espacios y los tabuladores se conocen como espacios en blanco (porque no se pueden ver). A Go no le importan los espacios en blanco, los usamos para que los programas sean más fáciles de leer. (Podrías eliminar esta línea y el programa se comportaría exactamente igual)

Entonces vemos esto:

import "fmt"

La palabra clave import es como incluimos código de otros paquetes para utilizarlo con nuestro programa. El paquete fmt (abreviatura de formato) implementa el formato de entrada y salida. Teniendo en cuenta lo que acabamos de aprender sobre los paquetes, ¿qué crees que contendrían los archivos del paquete fmt en su parte superior?

Nota que fmt de arriba está rodeado de comillas dobles. El uso de comillas dobles como este se conoce como un «literal de cadena» que es un tipo de «expresión». En Go las cadenas representan una secuencia de caracteres (letras, números, símbolos, …) de una longitud definida. Las cadenas se describen con más detalle en el próximo capítulo, pero por ahora lo importante es tener en cuenta que un carácter " de apertura debe ser seguido eventualmente por otro carácter " y cualquier cosa entre los dos se incluye en la cadena. (El carácter " en sí no es parte de la cadena)

La línea que comienza con // se conoce como un comentario. Los comentarios son ignorados por el compilador de Go y están ahí por tu propio bien (o el de quien recoja el código fuente de tu programa). Go soporta dos estilos diferentes de comentarios: Los comentarios // en los que todo el texto entre el // y el final de la línea es parte del comentario y los comentarios /* */ en los que todo entre los *s es parte del comentario. (Y puede incluir múltiples líneas)

Después de esto se ve una declaración de función:

func main() { fmt.Println("Hello World")}

Las funciones son los bloques de construcción de un programa Go. Tienen entradas, salidas y una serie de pasos llamados declaraciones que se ejecutan en orden. Todas las funciones comienzan con la palabra clave func seguida del nombre de la función (main en este caso), una lista de cero o más «parámetros» rodeados de paréntesis, un tipo de retorno opcional y un «cuerpo» que está rodeado de llaves. Esta función no tiene parámetros, no devuelve nada y sólo tiene una sentencia. El nombre main es especial porque es la función que se llama cuando se ejecuta el programa.

La pieza final de nuestro programa es esta línea:

 fmt.Println("Hello World")

Esta sentencia está formada por tres componentes. Primero accedemos a otra función dentro del paquete fmt llamada Println (esa es la pieza fmt.Println, Println significa Imprimir Línea). Luego creamos una nueva cadena que contiene Hello World e invocamos (también conocido como llamar o ejecutar) esa función con la cadena como primer y único argumento.

En este punto ya hemos visto mucha terminología nueva y puede que estés un poco abrumado. A veces es útil leer deliberadamente su programa en voz alta. Una lectura del programa que acabamos de escribir podría ser así:

Crea un nuevo programa ejecutable, que hace referencia a la biblioteca fmt y contiene una función llamada main. Esa función no toma argumentos, no devuelve nada y hace lo siguiente: Acceder a la función Println contenida dentro del paquete fmt e invocarla usando un argumento – la cadena Hello World.

La función Println hace el verdadero trabajo en este programa. Puedes saber más sobre ella escribiendo lo siguiente en tu terminal:

godoc fmt Println

Entre otras cosas deberías ver esto:

Println formats using the default formats for its operands and writes to standard output. Spaces are always added between operands and a newline is appended. It returns the number of bytes written and any write error encountered.

Go es un lenguaje de programación muy bien documentado pero esta documentación puede ser difícil de entender a menos que ya estés familiarizado con los lenguajes de programación. Sin embargo, el comando godoc es extremadamente útil y un buen lugar para empezar siempre que tengas una pregunta.

Volviendo a la función en cuestión, esta documentación te está diciendo que la función Println enviará lo que le des a la salida estándar – un nombre para la salida del terminal en el que estás trabajando. Esta función es la que hace que se muestre Hello World.

En el siguiente capítulo exploraremos cómo Go almacena y representa cosas como Hello World aprendiendo sobre los tipos.

Problemas

  • ¿Qué son los espacios en blanco?

  • ¿Qué es un comentario? ¿Cuáles son las dos formas de escribir un comentario?

  • Nuestro programa comienza con package main. ¿Con qué empezarían los ficheros del paquete fmt?

  • Hemos utilizado la función Println definida en el paquete fmt. Si quisiéramos utilizar la función Exit del paquete os ¿qué tendríamos que hacer?

  • Modifica el programa que escribimos para que en lugar de imprimir Hello World imprima Hello, my name is seguido de su nombre.

← Previous Index

Deja una respuesta

Tu dirección de correo electrónico no será publicada.