Fundamentos de Programación en Go: Structs, Apuntadores y Manejo de Errores
Clase 3 de 30 • Curso de Go Intermedio: Programación Orientada a Objetos y Concurrencia
Contenido del curso
- 5

Programación Orientada a Objetos en Go: Análisis y Comparativa
06:51 - 6

Equivalente de Clases en Go: Uso de Structs y Propiedades
06:41 - 7

Métodos en Structs: Implementación de Receiver Functions en Go
08:54 - 8

Implementación de Constructores en Go: Ejemplos y Mejores Prácticas
10:48 - 9

Herencia y Composición en Programación Orientada a Objetos
14:50 - 10

Interfaces y Polimorfismo en TypeScript y Go
12:35 - 11

Patrón Abstract Factory: Interfaces y Polimorfismo en Go
07:37 - 12

Implementación del Patrón Factory en Go para Notificaciones
10:10 - 13

Funciones Anónimas en Go: Uso y Consideraciones Prácticas
06:56 - 14

Funciones Variádicas y Retornos con Nombre en Go
10:51
- 22

Canales con y sin buffer en Go: diferencias y uso práctico
06:23 - 23

Sincronización de Rutinas en Go con Wait Group
07:26 - 24

"Uso de Canales con Buffer como Semáforos en Go"
09:00 - 25

Manejo de Canales de Lectura y Escritura en Go
09:34 - 26

Concurrencia en Go: Creación de Worker Pools y Fibonacci
11:23 - 27

Multiplexación de Canales en Go con Select y Case
07:13
¿Qué conceptos repasaremos en este curso?
Empezaremos con un repaso general de conceptos clave vistos en cursos anteriores que resultan cruciales para avanzar en este curso. Dominaremos estos principios para comprender cómo se integran en el aprendizaje de las nuevas características de Go.
Los temas específicos que revisaremos incluyen:
- Structs: Cómo definirlos y darles funcionamiento.
- Apuntadores: El manejo y significado del ampersand (&) y del asterisco (*).
- Google Teams: Cómo crearlas y usarlas.
- Canales (Channels): Utilizarlos para comunicar entre Go Routines y bloquear el programa según sea necesario.
¿Cómo preparar nuestro entorno de desarrollo con Go?
Para este curso, utilizaremos Visual Studio Code (VS Code) como editor de texto, y es importante tener instalada la extensión de Go. Configura tu entorno siguiendo estos pasos:
- Abre VS Code y busca en la pestaña de extensiones “Go”.
- Instala la extensión adecuada para asegurar una experiencia fluida en el desarrollo de tus aplicaciones.
¿Cómo estructura un programa básico en Go?
Para arrancar con un programa básico en Go, sigue los siguientes pasos:
- Crea un archivo nuevo llamado
main.go. - Define un paquete principal:
package main
func main() {
// Punto de entrada del programa
}
Este archivo será el punto de entrada de tu aplicación, crucial para su compilación y ejecución.
¿Cómo se declaran variables en Go?
Go ofrece múltiples maneras de declarar variables, tanto de forma explícita como implícita:
-
Explicita: Utiliza
var, el nombre y el tipo de la variable.var x int = 8 -
Implícita: Mediante el uso de
:=.y := 8
Ambas formas tienen su uso, dependiendo de si deseas ser explícito respecto al tipo de tu variable para evitar errores de compatibilidad.
¿Cómo se manejan los errores en Go?
A diferencia de otros lenguajes, Go maneja los errores de manera explícita, sin las tradicionales estructuras try y catch.
Al intentar parsear un entero desde un string:
myValue, err := strconv.ParseInt("8", 0, 64)
if err != nil {
fmt.Println("Error:", err)
} else {
fmt.Println("Parsed value:", myValue)
}
El manejo explícito permite identificar claramente el error que se produce y gestionarlo adecuadamente.
¿Cómo crear y manejar mapas en Go?
Los mapas en Go son estructuras clave-valor que se definen como sigue:
m := make(map[string]int)
m["clave"] = 6
fmt.Println(m["clave"])
Asegúrate de que el tipo de las llaves y los valores coincida con lo especificado al crear el mapa para evitar errores de compilación.
¿Cómo utilizar slices en Go?
Los slices son similares a arreglos pero con más flexibilidad. Se crean y se pueden iterar de la siguiente manera:
s := []int{1, 2, 3}
for index, value := range s {
fmt.Printf("Index: %d, Value: %d\n", index, value)
}
Puedes agregar más elementos usando la función append:
s = append(s, 16)
Esto te permite modificar la longitud del slice dinámicamente.
Con esto, hemos cubierto las bases de variables, manejo de errores, mapas y slices en Go. Recuerda, en la próxima lección, avanzaremos con más contenido emocionante sobre Go Routines y canales, así que sigue practicando y nos vemos en la próxima clase. ¡No te lo pierdas!