Golang Básico 1/2

Kairos DS, 2019-03

El Profe

@pinchito
Desarrollador senior Devo

Día 1: Introducción

Hola, mundo

Tipos y funciones,  valores cero

Arrays y slices

Punteros, structs e interfaces

Paquetes estándar

Concurrencia

¡Hola, mundo!


Go es un lenguaje sucesor de C

Creado por Rob Pike

Con tipado estático

Compilado

Por Googleros


Controlado por Google

Nombre "ingugleable"

Llamado "Golang" cariñosamente

Sesión práctica 1: ¡Hola, Mundo!


package main

import "fmt"

func main() {
    fmt.Println("hello world!")
}


Prueba a cambiar:

  • Llave de sitio {
  • Espaciado
  • Líneas en blanco

Intenta correr el código resultante

Usa gofmt sobre el código resultante

Well done!





👍

Tipos y funciones,  valores cero


Tour of Go

Sesión práctica 2: funciones


Crea una función que devuelva la hipotenusa de dos catetos

raíz cuadrada de la suma de los cuadrados

hipotenusa(cateto1, cateto2) 

Llamarla con (1.5, 1.5) y pintar el resultado

Ayuda


Parámetros en coma flotante: float32

math.Sqrt(float64)

Well done!





👌

Control de Flujo


Tour of Go

Sesión práctica 3: Control de flujo


Crea una función para calcular la suma de números primos

Acepta un parámetro

Suma los primos de 1 al parámetro

Devuelve el total

Pintar el resultado con 1000

Ayuda


a % b: resto de dividir a / b

Well done!





🙆

Punteros y structs


A Tour of Go

Sesión práctica 5: Punteros


Crear una clase Point con dos coordenadas

Crear una función elongate() que acepte un punto y un factor

Multiplica las coordenadas del punto por el factor

Crea un punto de coordenadas 1.5, 5
Alárgalo con un factor 3 y pinta el resultado

Well done!





😄

Arrays y slices


A Tour of Go

Sesión práctica 6: slices


Crear arrays de enteros de tamaño 5 y 7

Crear una función que reciba un array con strings
y devuelva un slice con los mismos elementos

Well Done!





😼

Métodos e Interfaces


A tour of Go

Sesión Práctica 7


Implementa elongate() sobre la clase Point

Well Done!





🆒

Paquetes Estándar


fmt

strings

os

encoding/json

io/ioutil

flag

Sesión práctica 8: Paquetes


Crea un programa que lea un fichero
y filtre las líneas que contienen una cadena dada

Especificación Técnica


Programa:

 grep --file [file] --filter [string]

Lee  el fichero [file]
Imprime sólo las líneas que contienen la cadena [string]

Ayuda


flag.String(name string, value string, usage string) *string
flag.Parse()

Lee una cadena como parámetro y termina

io/ioutil.ReadFile(filename string) ([]byte, error) 

Lee un fichero completo

strings.Split(str, separator string) []string 
Separa una cadena con el separador dado
strings.Contains(s, substr string) bool 
Comprueba si la cadena contiene la subcadena

Well Done!





🥇

Concurrencia


A Tour of Go

Fin del día 1

@pinchito