Introducción a Go: historia, características, aplicación en Go
¿Qué es y para qué sirve?
Imagina que estás construyendo una casa con bloques Lego. Hay bloques que simplemente se colocan uno sobre otro, como un lenguaje de programación simple. Y hay bloques que además se enganchan firmemente para que la casa no se derrumbe, incluso si le cae una pelota. Go (o Golang) es como un "Lego súper resistente" para programadores. Fue creado en la empresa Google en 2009, porque los programadores estaban cansados de esperar a que sus programas tardaran mucho en iniciarse o se rompieran bajo una gran carga de trabajo.
¿Para qué necesitas conocer Go? Imagina que escribes un programa para un juego en línea donde juegan un millón de personas al mismo tiempo. En Python o JavaScript, ese programa podría empezar a "ir lento" o fallar. Go está diseñado para funcionar de forma rápida y fiable, como un reloj suizo. Se utiliza en grandes proyectos: Docker (programa para ejecutar aplicaciones), Kubernetes (sistema para gestionar programas), así como en los servidores de Telegram y YouTube. Si quieres convertirte en un desarrollador genial que sabe hacer programas rápidos y potentes, Go es tu elección.
Sintaxis y ejemplos de código
Go se ve estricto, pero lógico. Analicemos algunos ejemplos. ¡No te asustes, te explicaré cada línea!
Ejemplo 1: ¡Hola, mundo!
package main // 1. Decimos que este es el programa principal
import "fmt" // 2. Tomamos la biblioteca para mostrar texto
func main() { // 3. Función principal, todo comienza aquí
fmt.Println("Hello, world!") // 4. Imprimimos texto
}
Comentarios:
package main— cada programa en Go comienza indicando el "paquete".maines como la "entrada principal" del programa.import "fmt"— conectamos un conjunto de herramientas ya preparado (biblioteca) para trabajar con texto.fmtes la abreviatura de "format".func main()— la función que se ejecuta primero. Dentro de ella escribimos los comandos.fmt.Println(...)— el comando "imprime la cadena y pasa a una nueva línea". Todo lo que está entre comillas aparecerá en la pantalla.
Ejemplo 2: Variables y matemáticas
package main
import "fmt"
func main() {
// Declaramos variables
var age int = 14 // age es un número entero (int)
var name string = "Ana" // name es una cadena (string)
var height float64 = 1.65 // height es un número decimal (float64)
// Calculamos la edad dentro de 5 años
futureAge := age + 5 // := es una forma abreviada para nuevas variables
// Mostramos el resultado
fmt.Println("Hola,", name)
fmt.Println("Ahora tienes", age, "años")
fmt.Println("Dentro de 5 años tendrás", futureAge)
fmt.Println("Tu altura:", height, "m")
}
Comentarios:
var age int = 14— creamos una variableagede tipoint(número entero) y le asignamos 14.futureAge := age + 5— una forma abreviada de crear una variable. Go deduce quefutureAgetambién es un número entero.fmt.Printlnpuede imprimir varias cosas a la vez separadas por comas.
Ejemplo 3: Condiciones (if-else)
package main
import "fmt"
func main() {
var age int = 16
if age >= 18 { // Si age es mayor o igual a 18
fmt.Println("¡Eres adulto!")
} else if age >= 12 { // Sino, si age >= 12
fmt.Println("¡Eres adolescente!")
} else { // Sino (todos los demás casos)
fmt.Println("¡Eres un niño!")
}
}
Comentarios:
if— verifica una condición. Si es verdadera, se ejecuta el código dentro de las llaves{}.else if— otra verificación, si la primera no se cumplió.else— se ejecuta si ninguna condición se cumplió.- Observa: en Go no hay paréntesis alrededor de la condición (como en Python), ¡pero las llaves son obligatorias!
Ejemplo 4: Bucle (for)
package main
import "fmt"
func main() {
// Contamos del 1 al 5
for i := 1; i <= 5; i++ {
fmt.Println("Cuenta:", i)
}
// Bucle infinito (se detendrá cuando i sea 10)
i := 0
for {
i++
if i == 10 {
break // salimos del bucle
}
}
fmt.Println("Bucle terminado, i =", i)
}
Comentarios:
for i := 1; i <= 5; i++— tres partes: valor inicial (i=1), condición (mientras i <= 5), paso (incrementar i en 1).i++— abreviatura dei = i + 1.break— el comando "para, sal del bucle".- En Go no hay bucle
while, como en Python. En su lugar, se usaforcon una sola condición.
Ejemplo 5: Funciones
package main
import "fmt"
// Función que suma dos números
func add(a int, b int) int {
return a + b // devolvemos el resultado
}
func main() {
result := add(5, 3) // llamamos a la función
fmt.Println("5 + 3 =", result)
// Se puede llamar varias veces
fmt.Println("10 + 20 =", add(10, 20))
}
Comentarios:
func add(a int, b int) int— declaramos una función con el nombreadd. Recibe dos números enteros (a y b) y devuelve un número entero (el últimoint).return a + b— devolvemos la suma.- Las funciones ayudan a no escribir el mismo código muchas veces.
Comparación con Python
Python es como un "lenguaje coloquial": es fácil y rápido de escribir, pero puede ser lento. Go es como un "documento oficial": estricto, pero rápido y fiable. Comparemos: