Hola mundo en Go

1

Introducción al Curso de Golang

2

¿Qué es, por qué y quienes utilizan Go?

3

Instalar Go en Linux

4

Instalar Go en Mac

5

Instalar Go en Windows

6

Nuestras primeras líneas de código con Go

Variables, funciones y documentación

7

Variables, constantes y zero values

8

Operadores aritméticos

9

Tipos de datos primitivos

10

Paquete fmt: algo más que imprimir en consola

11

Uso de funciones

12

Go doc: La forma de ver documentación

Estructuras de control de flujo y condicionales

13

El poder de los ciclos en Golang: for, for while y for forever

14

Operadores lógicos y de comparación

15

El condicional if

16

Múltiple condiciones anidadas con Switch

17

El uso de los keywords defer, break y continue

Estructuras de datos básicas

18

Arrays y Slices

19

Recorrido de Slices con Range

20

Llave valor con Maps

21

Structs: La forma de hacer clases en Go

22

Modificadores de acceso en funciones y Structs

Métodos e interfaces

23

Structs y Punteros

24

Stringers: personalizar el output de Structs

25

Interfaces y listas de interfaces

Concurrencia y Channels

26

¿Qué es la concurrencia?

27

Primer contacto con las Goroutines

28

Channels: La forma de organizar las goroutines

29

Range, Close y Select en channels

Manejo de paquetes y Go Modules

30

Go get: El manejador de paquetes

31

Go modules: Ir más allá del GoPath con Echo

32

Modificando módulos con Go

Despedida del curso

33

Despedida

Bonus

34

Cheat Sheet Go

35

Librerías para desarrollo web con Go

36

Data Science con Go

Aún no tienes acceso a esta clase

Crea una cuenta y continúa viendo este curso

Channels: La forma de organizar las goroutines

28/36
Recursos

Aportes 17

Preguntas 3

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad? Crea una cuenta o inicia sesión.

  • Goroutines sería útil a la hora de procesar documentos o imágenes.

la verdad no es muy clara la explicación, es mejor leer la documentación

Canal de entrada:

func Say(text string, c chan<- string){
	c <- text
}

Canal de salida:

func Say(text string, c <-chan string){
	 text = <- c
}

Deberían de rehacer el curso, el instructor le da muchas vueltas y eso confunde bastante, también que hable más claro

Creo que haciendo un proyecto e implementando channels es cuando en verdad vamos a aprender a usarlos, espero y en los proximos cursos de go de niveles más altos hagamos eso

package main

import "fmt"

func say(text string, c chan<- string) {
	c <- text
}

func main() {
	c := make(chan string, 1)

	fmt.Println("Hello")

	go say("Bay", c)

	fmt.Println(<-c)
}

Se puede comparar la concurrencia vs. asincronismo?

faltó un ejemplo sobre usar los channels de salida.

el uso de la concurrencia puede ser para uso de geolocalización de dispositivos o clientes como en uber

Interesante

La concurrencia en go la utilizaría para manejar múltiples solicitudes a un servicio o servidor.

Entre las aplicaciones de las go routines, me vienen a la cabeza estas:

  • Procesamiento de archivos por lotes (cada lote sería un proceso distinto).
  • Algoritmos en los que pueda aprovechar paralelismo, como la búsqueda bidireccional.
  • Simulaciones que aprovechen la concurrencia, por ejemplo, un modelo estadístico de la pandemia (cada region sería un proceso diferente)
  • Entrenamiento de agentes con aprendizaje por refuerzos. Por ejemplo, agentes que compiten en un entorno. Cada agente podría ser un proceso y el entorno en sí mismo también.

Algo que me hace falta es aprender como tener input para pedir al usuario que ingrese un dato. Aun me queda la duda de como se puede hacer esto en Go. Pero de ahí lo demás amo este lenguaje y este profesor ha hecho que me enamore de Golang 😃

Les recomiendo el siguiente recurso:
https://gobyexample.com/channels

Se puede implementar la concurrencia y los channels para correr algoritmos iterativos como por ejemplo: Iterative Closest Point (ICP) o RANSAC

😎