Golang

Esto es un resumen de lo que fui aprendiendo de Golang:

  • lenguaje compilado y estaticamente tipado
  • creado en Google
  • Go de Golang
  • Gophers
  • Go Gopher es la mascota
  • gopherize.me para crear tu mascota
  • Go tiene un icono
  • velocidad de compilación
  • concurrencia nativa
  • buenas practicas de forma nativa, sintaxis.
  • las interfaces en go son implícitas, no hay que implementarlas
  • las interfaces no son genéricas
  • every value has a type
  • hay dos interfaces que se usan mucho Writer and Reader
  • las Go Routines son una forma de ejecutar código en paralelo
  • Go Scheduler
  • concurrency != parallelism
  • parallelism requires multiple CPU’s
  • existe una main routine que es la principal, cada vez que corremos un programa se crea una.
  • go es la keyword para crear rutinas
  • solo se puede anteponer go en funciones
  • channels sirven para comunicar las distintas rutinas
  • los channels tienen tipos
  • chan es la keyword para los canales
  • <- para devolver o recibir datos
  • recibir mensajes de un canal es bloqueante
  • function literals son iguales a las funciones anónimas de js y php
  • func power(name string) (int, bool) significa que la función devuelve 2 valores uno int y uno bool.
  • %v es la forma default para printear un string
  • structs es un tipo de collection
  • un solo binario ejecuta todo, creo que eso es una de las cosas que mas me gusta, por que queda todo “empaquetado”.

Exportar GOPATH

Al instalar Go en Linux es necesario exportar el path donde se encuentra definido el workspace.

En .bash_profile o .zshrc:

export GOPATH=$HOME/go

Resources