Vicente Rodríguez

Oct. 31, 2016

Tutorial básico de go

Go es el nuevo lenguaje de programación de google, es llamado el nuevo c, es rápido, compilado, puede manejar hilos en algo que llaman gorutines que lo hace un gran candidato para desarrollar todo tipo de cosas.

En este tutorial veremos lo basico del lenguaje:

Variables

Las variables se definen con la palabra reservada var seguido del nombre de la variable:


package main



import(

  "fmt"

)



var saludo = "hola mundo"

func main() {

  fmt.Print(saludo)

}

Un programa en go siempre tiene que tener esta estructura, primero indicamos el nombre del paquete, en este caso es nuestro main, donde se ejecutara todo, después las librerías que queramos importar, fmt sirve para imprimir o escribir texto, tiene mas funciones pero por ahora no nos importan, tenemos que tener una función main donde se ejecuta el código cuanto corramos el programa, aquí definimos la variable saludo afuera de la función y dentro de ella la imprimimos, también existen otras formas de declarar variables:


var saludo string = "hola mundo"// aquí indicamos el tipo de la variable

var numero int = 3

//dentro de las funciones se puede usar una forma mas compacta de declarar variables

func saludar() {

  saludo := "hola mundo"

}

La forma preferida de los desarrolladores de go es :=, esta forma solo se puede usar dentro de funciones o métodos.

Las constantes se declaran con la palabra reservada const y funcionan igual que las variables.

Los tipos de información que pueden guardar las variables y constantes mas comunes en go son:


var saludo string = "hola mundo"

var numero int = 34

var numeroFlotante float = 45.6756

var booleano bool = true

Arrays y slices

Los arrays en go funcionan de manera parecida a otros lenguajes, le tenemos que indicar cuantos elementos tendrá y podemos declararlo elemento por elemento o con todos los datos:


var numeros = int[5] //lo declaramos vacío

numeros[0] = 23

numeros[1] = 34

numeros :=  [5]int{23, 34, 56, 78, 89} //lo declaramos ya con los datos

Los slices son valores que apuntan a un array:


numeros :=  [5]int{23, 34, 56, 78, 89}

s := numeros[0:3]

El slice s toma los valores del array números desde la posición 0 hasta la posición 3, para crear un nuevo slice vacío:


s := make([]int,5,5)

Los slices toman 3 parámetros, el primero es el tipo de dato, el segundo es el tamaño y el tercero y opcional es la capacidad, la capacidad indica que tantos elementos podemos guardar en el slice.

Mapas

Los mapas son como diccionarios en otros lenguajes, tienen clave-valor, con la clave accedes al valor que tiene almacenado, su sintaxis es map[tipo de dato de la llave]tipo de dato del valor:


var m = map[string]int{ "enero": 1, "febrero": 2}

var ma = make(map[string]int)

ma["enero"] = 1ma["febrero"] = 2

Podemos crear mapas de dos formas, la primera sin make donde es necesario declarar los valores que tendra, posteriormente se pueden agregar nuevos datos al igual que con make.

Bucle for y Rangos

Los rangos sirven para iterar un array o mapa y funcionan de la mano con el bucle for:


ar := [5]int{4,5,6,7,8}

for i, val := range ar {

  fmt.Println(i)

  fmt.Println(val)

}

El bucle for es el único bucle disponible en go, gracias al rango podemos recorrer un array y obtener el index(i) y el valor(val) de cada uno de los elementos.Un bucle for se puede declarar de distintas maneras, la primera seria la clásica de todos los lenguajes:


for i := 0; i < 5; i++ {    

  fmt.Println(i)  

}

La segunda es como ya vimos, recorriendo un array o mapa con un rango y como en go no existe el bucle while podemos representarlo con un for:


for i := 0; i < 5; {    

  fmt.Println(i)    

  i++  

}

Incluso podemos tener un bucle infinito:


for {    

  fmt.Println("hola")  

}



If

La sintaxis de if es sin () y con las mismas reglas de siempre:


if true {  

  fmt.Print("Verdadero")

} else {  

  fmt.Print("Falso")

}

También podemos declarar variables y revisar alguna condición en la declaración del if:


if ar := [5]int{4,5,6,7,8}; len(ar) > 3 {    

  fmt.Println("ar es mayor que 3")  

}

Funciones

Las funciones se declaran con la palabra reservada func, aceptan parámetros y pueden regresar valores:


func saludar(saludo string) bool {  

  fmt.Print(saludo)  

  return true

}

La función saludar, acepta un parámetro de tipo string que se llama saludo y regresa un valor de tipo bool.

Si tienes alguna duda o comentario no dudes en contactarme ya sea via twitter o en los comentarios. Gracias por ver el tutorial completo, ya aprendiste algo nuevo, felicidades!