Biblioteca estándar de Go (Golang): guía completa

Entrenador de Python en Línea para Principiantes

Aprende Python fácilmente sin sobrecargarte de teoría. Resuelve tareas prácticas con verificación automática, recibe pistas y escribe código directamente en el navegador, sin instalar nada.

Start Course

Biblioteca estándar de Go (Golang): guía completa



Go (o Golang) es un lenguaje de programación compilado moderno de Google, creado para la simplicidad, el rendimiento y la fiabilidad. Una de las principales razones de su popularidad es su potente y bien documentada biblioteca estándar. A diferencia de muchos otros lenguajes, Go viene con un rico conjunto de paquetes "listos para usar" que cubren prácticamente todas las tareas básicas: desde el trabajo con texto hasta la construcción de servicios web de alta carga. En esta guía, revisaremos en detalle los paquetes clave de la biblioteca estándar de Go con ejemplos de código.



Paquete fmt: entrada/salida formateada

Este es el primer paquete que conoce todo desarrollador de Go. Proporciona funciones para la salida formateada en consola y la lectura de datos.

package main

import "fmt"

func main() { name := "Go" version := 1.22 // Salida formateada fmt.Printf("Idioma: %s, Versión: %.1f", name, version)

// Ensamblar cadena sin imprimir message := fmt.Sprintf("¡Hola, %s!", name) fmt.Println(message)}


Paquetes strings y strconv: trabajo con cadenas

El paquete strings contiene funciones para buscar, reemplazar, dividir y unir cadenas. strconv se encarga de convertir cadenas a números y viceversa.

import (    "fmt"    "strconv"    "strings")

func main() { s := "¡Hola, mundo!" // Búsqueda de subcadena if strings.Contains(s, "mundo") { fmt.Println("Encontrado") } // División de cadena parts := strings.Split(s, ", ") fmt.Println(parts[0]) // ¡Hola

// Conversión de cadena a número num, _ := strconv.Atoi("42") fmt.Println(num + 8) // 50}


Paquete net/http: creación de servidores y clientes HTTP

Uno de los paquetes más potentes. Permite ejecutar un servidor HTTP completo en pocas líneas de código. Se usa ampliamente en microservicios y aplicaciones web.

package main

import ( "fmt" "net/http")

func handler(w http.ResponseWriter, r *http.Request) { fmt.Fprintf(w, "¡Hola, %s!", r.URL.Path[1:])}

func main() { http.HandleFunc("/", handler) http.ListenAndServe(":8080", nil)}


Paquete encoding/json: trabajo con JSON

Las aplicaciones modernas intercambian constantemente datos en formato JSON. El paquete encoding/json permite serializar y deserializar fácilmente estructuras de Go a JSON y viceversa.

import (    "encoding/json"    "fmt")

type User struct { Name string `json:"name"` Age int `json:"age"`}

func main() { user := User{Name: "Alejandro", Age: 30} // Serialización a JSON jsonData, _ := json.Marshal(user) fmt.Println(string(jsonData)) // {"name":"Alejandro","age":30}

// Deserialización desde JSON var decoded User json.Unmarshal(jsonData, &decoded) fmt.Println(decoded.Name) // Alejandro}


Paquetes io y os: trabajo con archivos y flujos

El paquete os proporciona funciones para trabajar con el sistema operativo: lectura y escritura de archivos, manejo de variables de entorno y argumentos de línea de comandos. io contiene interfaces para trabajar con flujos de datos (lectura/escritura).

import (    "io/ioutil"    "os")

func main() { // Escritura en archivo data := []byte("¡Hola, Go!") ioutil.WriteFile("ejemplo.txt", data, 0644)

// Lectura de archivo content, _ := ioutil.ReadFile("ejemplo.txt") os.Stdout.Write(content)}


Paquetes sync y goroutines: concurrencia

Go es famoso por su soporte integrado de concurrencia a través de gorutinas (hilos ligeros) y canales. El paquete sync proporciona primitivas de sincronización, como el mutex

Recommendations