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

Cheat Sheet Go

34/36

Lectura

Cheat Sheet Go

En esta lectura te llevarás algunos tópicos que siempre vale la pena tener a la mano al momento de programar en Go, además te dejo algunos tips extras.

  • Hola mundo
package main

import "fmt"

func main(){
    fmt.Println("Hola mundo")
}
  • ¬ŅHacer una impresi√≥n en consola r√°pida?
package main

func main(){
    print("Hola")
}
  • Importar una librer√≠a sin usarla
package main

/*
    Hazlo solo y √ļnicamente cuando la librer√≠a externa
    que estés usando lo pida explícitamente
*/
import ( 
    "fmt"
    _ "math"
)

func main(){
    fmt.Println("Hola mundo")
}
  • Agregar un alias a un import (no suele usarse, pero es bueno saberlo)
package main

import (
	"fmt"
	mth "math"
)

func main() {
	fmt.Println(mth.Pi)
}
  • Diferentes formas de declarar variables
v := 12
var v int = 12
var v int
  • Zero values de primitivos
var a int // 0
var b float64 // 0
var c string // ""
var d bool // false
  • Incremental y decremental
x++ // Suma 1 a x
x-- // Resta 1 a x
  • Imprimir tipo de variables (hay otras formas, pero esta es la m√°s f√°cil)
a := 2
fmt.Printf("%T", a)
  • Funci√≥n para tomar los errores (ahorra mucho c√≥digo)
func isError(e error) {
    if e != nil {
        log.Fatal(e)
    }
}

// Ejemplo de uso
func main() {
	_, err := strconv.Atoi("53a")
	isError(err)
}
  • Arrays vs Slices
// Array
var myList [2]int

// Slice
var myList2 []int
  • Slice de interfaces (√ösalo con sabidur√≠a)
// Permite guardar diferentes tipos de datos en un mismo slice
myList := []interface{}{"Hola", 12, 4.90}

// Iterar sobre los distintos tipos de datos de ese slice
for _, v := range myList {
    switch v.(type) {
    case int:
        fmt.Println("Es int")
    case string:
        fmt.Println("Es string")
    case float64:
        fmt.Println("Es float64")
    }
}
  • Asegurarnos si un key existe en el map
m := make(map[string]int)

m["hola"] = 1

// Nota, usalmente se usa "ok" para recibir la segunda variable
value, ok := m["hello"]

/*
Si existe, ok ser√° "true"
Si no existe, ok ser√° "false"

En este caso, ok es "false" porque no existe.
*/
  • Punteros
a := 10 // Variable int
b := &a // "b" es el puntero de "a"
c := *b // "c" adquiere el valor del puntero de "b", es decir toma el mismo valor de "a"
  • Comandos de Go modules
// Inicializar un proyecto
go mod init path_del_proyecto

// Verificar que el código externo no esté corrupto
go mod verify

// Reemplazar fuente del código
go mod edit -replace path_del_repo_online=path_del_repo_en_local

// Quitar el replace
go mod edit -dropreplace path_del_repo_online

// Empaquetar todo el código de terceros que usa nuestro código
go mod vendor

// Eliminar todos los paquetes externos que no estemos usando
go mod tidy

// Aprender m√°s de go modules
go help mod
  • Nota personal

A√ļn tienes un largo camino por recorrer. Pero lo que m√°s quiero que te lleves de este curso son tres cosas: Practica, estudia y participa en la comunidad de Go.

Aportes 5

Preguntas 0

Ordenar por:

¬ŅQuieres ver m√°s aportes, preguntas y respuestas de la comunidad? Crea una cuenta o inicia sesi√≥n.

Aqui les dejo otro cheat sheet de go
Cheat Sheet Golang

Creo que ver como pedir datos al usuario es algo que debe venir en un curso basico.

Les dejo como se hace:

fmt.Scanln(&variable)

Muchas gracias!

Genial

Aqui les dejo una peque√Īa sobre error handling similar a java (en): https://dzone.com/articles/try-and-catch-in-golang