Channels

Pasar valores entre goroutines

Las goroutines corren de forma concurrente — pero necesitan devolver resultados. Una goroutine de búsqueda de walkers encuentra tres coincidencias; ¿cómo se las entrega a main? La respuesta de Go es un channel: una tubería tipada que conecta goroutines. Una goroutine envía un valor adentro, otra lo recibe afuera.

El proverbio guía de Go: "No te comuniques compartiendo memoria; comparte memoria comunicándote." En vez de que dos goroutines toquen la misma variable detrás de un lock, una envía el valor por un channel a la otra. El channel maneja la entrega de forma segura.