← Go EspañolChapter 01 of 13

Introducción a Go

## Objetivos de Aprendizaje - Comprender la historia y filosofía de diseño de Go - Configurar el entorno de desarrollo de Go - Escribir y ejecutar tu primer programa en Go - Comprender los fundamentos de la sintaxis de Go ## ¿Qué es Go? Go es un lenguaje de programación tipado estáticamente y compilado desarrollado por los ingenieros de Google Robert Griesemer, Rob Pike y Ken Thompson. ```go package main import "fmt" func main() { fmt.Println("Hello, World!") } ``` ## ¿Por qué Go? ### Características Clave - **Compilación rápida** - Go compila directamente a código máquina - **Soporte simultáneo** - Soporte de concurrencia mediante goroutines - **Seguridad** - Seguridad de memoria con recolección de basura - **Sintaxis limpia** - Minimalista y fácil de leer - **Tipado estático** - Detecta errores en tiempo de compilación - **Biblioteca estándar** - Rica biblioteca estándar incluida ### Filosofía de Diseño | Principio | Descripción | |-----------|-------------| | Simplicidad | Palabras clave mínimas, sin características complejas | | Legibilidad | El código debe ser fácil de leer y entender | | Productividad | Tiempos de compilación rápidos, herramientas sencillas | ## Instalando Go ### Descarga Obtén Go desde ### Verificar Instalación ```bash go version ``` ### Entorno ```bash go env GOPATH go env GOROOT ``` ## Tu Primer Programa ### Archivo: main.go ```go package main import "fmt" func main() { fmt.Println("Hello, World!") } ``` ### Ejecutar ```bash go run main.go ``` ### Compilar ```bash go build -o hello main.go ./hello ``` ## Estructura de un Programa en Go ```go package main // Declaración del paquete import "fmt" // Importaciones func main() { // Función principal (punto de entrada) // Sentencias } ``` ### Componentes 1. **Paquete**: Grupo de archivos fuente relacionados 2. **Import**: Incluye otros paquetes 3. **Función**: Bloques de código reutilizables 4. **Función main**: Punto de entrada de programas ejecutables ## Paquetes ### Paquete Main Los programas ejecutables deben usar `package main`. ```go package main ``` ### Otros Paquetes ```go import "fmt" // E/S formateada import "math" // Funciones matemáticas import "strings" // Utilidades de cadenas ``` ### Importaciones Múltiples ```go import ( "fmt" "math" "strings" ) ``` ## Paquete fmt ### Imprimir ```go fmt.Println("Hello") // Imprimir con nueva línea fmt.Print("Hello") // Imprimir sin nueva línea fmt.Printf("Name: %s\n", "Go") // Impresión formateada ``` ### Println vs Print vs Printf ```go fmt.Println("Hello", "World") // Hello World fmt.Print("Hello", "World") // HelloWorld fmt.Printf("%.2f", 3.14159) // 3.14 ``` ### Verbos de Formato | Verbo | Descripción | |-------|-------------| | `%v` | Formato predeterminado | | `%T` | Tipo del valor | | `%d` | Entero | | `%f` | Flotante | | `%s` | Cadena | | `%t` | Booleano | | `%p` | Puntero | ## Comentarios ```go // Comentario de una línea /* * Comentario de múltiples líneas */ // TODO: Agregar más código // FIXME: Arreglar este error ``` ## Argumentos de Línea de Comandos ```go package main import ( "fmt" "os" ) func main() { args := os.Args for i, arg := range args { fmt.Printf("Arg %d: %s\n", i, arg) } } ``` ```bash go run main.go arg1 arg2 arg3 ``` ## Variables ### Declaración ```go var name string = "Go" var version = 1.20 // Inferencia de tipo name := "Golang" // Declaración corta (dentro de funciones) ``` ## Tipos de Datos Básicos ```go bool // true o false string // "Hello" int // Entero (dependiente de la plataforma) int8 // -128 a 127 int32 // -2.1B a 2.1B float64 // Flotante de 64 bits byte // Alias para uint8 rune // Alias para int32 (punto de código Unicode) ``` ## Convenciones de Nomenclatura - Usa camelCase para nombres de variables y funciones - Usa PascalCase para nombres exportados - Mantén los nombres cortos pero significativos ```go var userName string // camelCase var UserName string // PascalCase (exportado) const MaxRetries = 3 // PascalCase (constante) ``` ## IDEs y Editores ### Editores Populares - VS Code con extensión Go (recomendado) - GoLand (JetBrains) - Vim/Neovim con vim-go - Sublime Text con GoSublime ### Configuración de VS Code 1. Instalar VS Code 2. Instalar extensión Go 3. Instalar herramientas de Go: `cmd+shift+p` → "Go: Install/Update Tools" ## Versiones de Go ```bash go version # Verificar versión instalada ``` | Versión | Año | Característica | |---------|------|---------| | Go 1.0 | 2012 | Lanzamiento inicial | | Go 1.5 | 2015 | Compilador auto-hospedado | | Go 1.11 | 2018 | Módulos | | Go 1.18 | 2022 | Genéricos | | Go 1.21 | 2023 | Herramientas mejoradas | ## Resumen - Go es un lenguaje compilado y tipado estáticamente diseñado por Google - Cada programa ejecutable necesita `package main` - `go run` ejecuta programas Go directamente - `go build` crea binarios ejecutables - El paquete `fmt` proporciona E/S formateada - Los comentarios usan `//` para una línea y `/* */` para múltiples líneas - Go prioriza la simplicidad, legibilidad y compilación rápida

Comments

Comments powered by Giscus

To enable comments, add your Giscus embed code here.

Learn more about Giscus →