Aprende Go en castellano con ejemplos tutoriales y ejercicios.
- Strings
- Longitud de un string
- Accediendo a bytes individuales de un string
- Usando un loop for/range en un string
- Que es una runa
- Strings son inmutables
- Strings usando backtick comillas invertidas
- Comparacion de caracteres
- Comparacion de strings
- Crear un string a partir de un slice de bytes
- Creando un string a partir de un slice de runas
- Concatenacion de strings
- Arrays
- Que es un array
- Como declarar un array
- Asignacion de valores a un array
- Inicializacion de un array
- Inicializacion de un array multilinea
- Declaracion automatica de la longitud de un array
- Encuentra la longitud de un array
- Comparacion de arrays
- Iteracion de arrays
- Arrays multidimensionales
- Pasar un array a una funcion
- Slices
- Introducción, que es un slice
- El Slice es una referencia a un array
- Longitud y capacidad de un slice
- Slice es una Struct
- Append function
- Anonymous array slice
- Funcion copy
- Funcion make
- Unpack operator
- Extract operator
- Slice iteration
- Pasado por referencia
- Delete slice elements
- Comparacion de slices
- Slices multi-dimensionales
- Optimizacion de memoria
- Condicionales
- Condicional if
- Condicional if-else
- Condicional if else if
- Estado inicial
- Ternary condition
- Condicional switch
- The syntax of the switch statement
- Default case
- Múltiples valores en el case
- Inicial statement
- Expressionless switch statement
- Fallthrough statement
- Iteradores
- Maps
- Que es un map
- Crear un map vacio
- Inicializar un map
- Accediendo a los datos de un map
- Longitud de un map
- Eliminar un elemento de un map
- Comparacion de maps
- Iteracion sobre un map
- Map con otros tipos de datos
- Maps son tipos de referencia
- Copiar un map
- Aprender maps haciendo tests
- Buscar un item en un map por su key
- Escribiendo el primer test
- Correr el test
- Escribir el minimo codigo para correr el test y ver su output
- Escribir el codigo para que el test pase
- Refactor
- Crear un helper para el test
- Usar un tipo personalizado para el diccionario
- Escribir un test para el caso de que la word no este en el dictionary
- Escribir el codigo para que el test corra y poder ver su output
- Escribir el codigo necesario para que el test pase
- Refactor
- Agregar un item a un map
- Escribir el primer test para añadir un item a un map
- Escribir el código necesario para que el test corra y poder ver su output
- Escribir el código necesario para que el test pase
- Punteros copias etc
- Refactor
- Escribir un test para el caso de que la word ya exista
- Correr el test
- Escribir el código necesario para que el test pase
- Escribir el código necesario para que el test pase
- Refactor
- Actualizar el item de un map
- Escribir el primer test
- Correr el test
- Escribir el código necesario para que el test corra y poder ver su output
- Escribir el código necesario para que el test pase
- Escribiendo un test para el caso de que la word que queremos actualizar sea nueva en el diccionario
- Correr el test
- Escribir el código necesario para que el test corra y poder ver el test fallando en su output
- Escribir el código necesario para que el test pase
- Nota al declarar un nuevo error para Update
- Borrar un item de un map
- Buscar un item en un map por su key
- Punteros
- Estructuras en go (structs)
- ¿Qué es una estructura?
- Declarar un tipo de estructura
- Creando una estructura
- Obtener y establecer campos de estructura
- Inicializando una estructura
- Estructura anónima
- Puntero a una estructura
- Campos anónimos
- Estructura anidada
- Campos promocionados
- Campos de función
- Comparación de estructuras
- Metadatos de campo de estructura
- Funciones
- Variadic functions in go
- Métodos
- Interfaces
- Introduction to Streams and Buffers
- What are a stream and a buffer
- Reading from a Data Source
- io.Reader
- strings.NewReader
- ioutil.ReadAll
- io.ReadFull
- io.LimitReader
- Writing to a Data Store
- io.Writer
- io.WriteString
- Standard I/O Streams
- Closing I/O Operations
- Transferring Data between streams
- io.Copy
- io.Pipe
- Buffered streams
- Trabajando con JSON
- Goroutines
- Katas