Guía para principiantes en programación Go

GolangBeginner
Practicar Ahora

Introducción

En este laboratorio, comenzaremos oficialmente a aprender a programar en Go. Cubriremos conceptos básicos y completaremos un sencillo programa en Go por nosotros mismos.

Puntos de conocimiento:

  • Declaración de salida estándar
  • Estructura del código
  • Ejecución de un programa
  • Funciones comunes en el paquete fmt

💡 Primer programa en Go

Comencemos creando nuestro primer programa en Go. Haz clic derecho en la barra lateral para crear un nuevo archivo llamado helloWorld.go en tu carpeta de proyecto.

Descripción de la imagen

Nota: Recomendamos utilizar WebIDE (similar a VS Code) para una mejor experiencia. Aprende más sobre la Guía de uso de WebIDE aquí.

También puedes crear un nuevo archivo utilizando el comando touch:

touch helloWorld.go

Ahora, abre el archivo y escribe el siguiente código:

package main

import "fmt"

func main() {
    fmt.Println("hello, world")
}

La primera línea, package main, indica que este programa pertenece al paquete main. La segunda línea, import "fmt", importa el paquete fmt de Go, que nos permite formatear la entrada y salida de texto. La función main es donde comienza la ejecución del programa, y dentro de ella, fmt.Println("hello, world") imprimirá hello, world en la terminal.

Para ejecutar el programa, abre la terminal y escribe el siguiente comando:

go run helloWorld.go

Si todo está configurado correctamente, deberías ver la salida:

hello, world

Este es un sencillo programa "Hello World". Ahora, explicaremos el código y las operaciones línea por línea.

Estructura y sintaxis del programa

En Go, un paquete (package) es la unidad básica de gestión de código. Todo programa en Go comienza con una declaración de package. En este caso, package main le dice a Go que el código es parte del programa principal que se ejecutará.

La declaración import "fmt" importa el paquete fmt de Go, que se utiliza para entrada y salida. Go tiene una rica biblioteca estándar que nos permite realizar muchas tareas con facilidad. El paquete fmt se utiliza para formatear la salida de texto, como vimos en el paso anterior.

A continuación, definimos la función main:

func main() {
}

En Go, todas las funciones deben comenzar con func. Observa que la llave de apertura { se coloca al final de la línea. Esta es una convención de Go y es diferente de otros lenguajes de programación que podrían colocar la llave de apertura en una nueva línea.

Si por error colocas la llave de apertura en una nueva línea así:

func main()
{
}

Obtendrás un error de compilación:

$ go run helloWorld.go
### command-line-arguments
./helloWorld.go:7:1: syntax error: unexpected semicolon or newline before {

Esto se debe a que Go espera que la llave de apertura esté directamente en la misma línea.

La declaración clave en el programa es fmt.Println("hello, world"), que llama a la función Println del paquete fmt para imprimir la cadena "hello, world" en la consola. Esta función agrega automáticamente un carácter de nueva línea al final de la cadena.

Ejecución del programa

Go es un lenguaje compilado, pero cuando usamos el comando go run, Go primero compila el código fuente y luego ejecuta el ejecutable resultante. Entonces, el comando:

go run helloWorld.go

es equivalente a ejecutar estos dos comandos:

## Compilar el programa
go build helloWorld.go

## Ejecutar el programa compilado
./helloWorld

Para probar un nuevo ejemplo, modifiquemos el programa para saludar a otros Gophers. Crea un nuevo archivo llamado helloGopher.go y reemplaza el código con:

Puedes crear un nuevo archivo utilizando el comando touch:

touch helloGopher.go
package main

import "fmt"

func main() {
 fmt.Println("hello Gopher.")
 fmt.Println("hello Gopher.")
 fmt.Println("hello Gopher.")
}

Ahora, en lugar de usar go run, usaremos go build para compilar el programa y luego ejecutaremos el ejecutable generado:

## Compilar el programa
go build helloGopher.go

## Ejecutar el ejecutable compilado
./helloGopher

Esto generará la siguiente salida:

hello Gopher.
hello Gopher.
hello Gopher.

Funciones comunes en el paquete fmt

En el Paso 1, usamos la función Println() del paquete fmt para imprimir una salida. El paquete fmt es uno de los paquetes más utilizados en Go y ofrece varias funciones para formatear la salida.

Aquí hay tres funciones de salida comunes:

  1. fmt.Print() – Muestra el texto sin un salto de línea.
  2. fmt.Println() – Muestra el texto con un salto de línea.
  3. fmt.Printf() – Muestra texto formateado.

Exploremos estas funciones en más detalle. Crea un nuevo archivo llamado fmt.go y escribe el siguiente código:

package main

import "fmt"

func main() {
    // Standard output
    fmt.Print("hello")
    fmt.Print("world")

    // Println adds a newline character after the standard output
    fmt.Println()
    fmt.Println("labex")

    // Printf provides formatted output
    fmt.Printf("%s\n", "London")
}

Ejecuta el programa usando el comando go run:

go run fmt.go

Explicación:

  • fmt.Print("hello") y fmt.Print("world") muestran el texto en la misma línea porque Print no agrega un salto de línea.
  • fmt.Println() muestra un salto de línea para separar las líneas.
  • fmt.Printf("%s\n", "London") formatea la salida usando el marcador de posición %s para la cadena "London".

Aquí está una comparación rápida de las funciones:

Función Salida estándar Salto de línea Salida formateada
Print × ×
Println ×
Printf × ×

El paquete fmt también proporciona otras funciones para leer entrada, manejo de errores y más, que se cubrirán en ejercicios posteriores.

Resumen

En este laboratorio, hemos escrito nuestro primer programa en Go, aprendido sobre la estructura de los programas en Go y explorado las funciones básicas del paquete fmt para la salida. También hemos practicado la ejecución de programas en Go y aprendido la diferencia entre Print, Println y Printf. Ahora deberías tener una comprensión básica de la sintaxis de Go y la ejecución de programas.