Читать книгу Programación en Go - Mario Macías Lloret - Страница 6
TABLA DE CONTENIDO
ОглавлениеCAPÍTULO 1. INSTALACIÓN Y USO DE GO
1.4 Compilando y ejecutando su primer programa
CAPÍTULO 2. SINTAXIS BÁSICA DE GO
2.2 Cadenas de texto. El tipo string
2.4 Conversiones explícitas de tipos
2.8 Operadores numéricos de comparación
2.9 Operadores aplicables al tipo string
2.10 Operadores lógicos con bool
2.11 Operadores lógicos a nivel de bit
2.13 Entrada estándar de datos
3.2 Órdenes iterativas (bucles for)
3.3 Contexto y ocultación de variables
4.1 Definición de un apuntador
4.3 Apuntando hacia una variable
4.4 Leyendo o modificando el valor apuntado
4.5 Valores versus referencias
5.3 Retorno de múltiples valores
5.4 Retorno de múltiples valores nombrados
5.6 Paso por valor vs. paso por referencia
CAPÍTULO 6. ESTRUCTURAS DE DATOS LINEALES
6.3 Declarando variables a porciones
6.4 Añadir elementos a una porción. Función append
6.5 Medir dimensiones con len y cap
6.6 Controlar el tamaño inicial con make
6.7 Copia de porciones con copy
6.8 Uso de porciones en funciones
6.9 Recorriendo vectores y porciones
6.10 Creando “vistas” desde las porciones
6.11 Funciones con número variable de argumentos
7.1 Diferencias con porciones y vectores
7.2 Obteniendo la longitud de un string
7.4 Construcción dinámica de cadenas
7.4.1 Concatenación de cadenas
7.4.2 Construcción con strings.Builder
CAPÍTULO 8. DICCIONARIOS (MAPAS)
8.3 Eliminando entradas con delete
8.4 Recorriendo mapas con range
8.5 Contando el número de elementos
CAPÍTULO 9. ORGANIZACIÓN DE CÓDIGO
9.3 Creando módulos y paquetes
9.4 Importando paquetes del módulo local
9.5 Incorporando paquetes de módulos externos
9.6 Copias locales de módulos. El directorio vendor
9.7 Elementos públicos y privados a nivel de paquete
CAPÍTULO 10. DEFINICIÓN DE TIPOS DE DATOS
10.1 Tipos a partir de porciones
10.4 Receptores de función. Métodos
10.6 Caso de estudio: time.Duration
CAPÍTULO 11. TIPOS DE DATOS ESTRUCTURADOS
11.1 Tipos de datos estructurados: struct
11.3 Receptores de función y creación de métodos
11.4 Incrustado de estructuras
11.5 La estructura vacía: struct{}
11.6 Caso práctico: opciones funcionales como alternativa a constructores
12.1 Caso de estudio: la interfaz Stringer
12.2 La filosofía del tipado estructural
12.3 Implementando interfaces: receptores ¿mediante apuntadores o mediante valores?
12.4 La interfaz vacía interface{}
12.5 Manejo seguro de tipos de datos
CAPÍTULO 13. GESTIÓN DE ERRORES
13.2 Instanciando errores de manera genérica
13.3 Comprobación de tipos de error
13.3.2 Distintas implementaciones de error
13.5 Verificando la cadena de errores: errors.As
14.1 Interfaces io.Writer e io.Reader
14.3 Entrada y salida formateada
CAPÍTULO 15. PARALELISMO Y CONCURRENCIA
15.3 Sincronización mediante sync.WaitGroup
15.4 Problemas de concurrencia: condiciones de carrera
15.5 Sincronización mediante sync.Mutex
15.6 Sincronización mediante atomic
15.7 Conclusiones: ¿cuándo y cómo sincronizar gorrutinas?
16.2 Canales solo de lectura y de escritura
16.3 Bloqueo en la escritura: canales con o sin búfer
16.6 Sincronización mediante canales
16.7 Demultiplexión con select
16.8 Cancelando lecturas después de un tiempo de espera
16.9 Cancelando tareas mediante contextos
17.1 HTTP explicado en 3 minutos
17.2 REST explicado en 3 minutos
17.3 Creación de un servicio HTTP en Go
17.3.2 Funciones http.ListenAndServe y http.ListenAndServeTLS
17.3.3 Ejemplo de servidor HTTP
17.4 Creación de un cliente HTTP en Go
17.4.1 Ejemplo de cliente HTTP
17.5 Ejemplo práctico de servicio REST
17.5.1 Probando el servicio REST
CAPÍTULO 18. SERIALIZACIÓN DE DATOS
18.1 Serialización de tipos Go a JSON
18.2 Deserialización de JSON a tipos Go
18.3 Serializando y deserializando documentos JSON sin formato
18.4 Serialización de porciones y arrays
18.5 Serialización y deserialización en otros formatos
CAPÍTULO 19. CONEXIÓN A BASES DE DATOS SQL
19.2 Abriendo una base de datos
19.3 Modificando la base de datos
CAPÍTULO 20. PRUEBAS AUTOMATIZADAS DE SOFTWARE