Читать книгу Programación en Go - Mario Macías Lloret - Страница 6

TABLA DE CONTENIDO

Оглавление

INTRODUCCIÓN

Acerca de este libro

Organización del libro

Convenciones de formato

Acerca del autor

CAPÍTULO 1. INSTALACIÓN Y USO DE GO

1.1 Instalando Go

1.2 Comandos básicos de Go

1.3 Editando su código en Go

1.4 Compilando y ejecutando su primer programa

CAPÍTULO 2. SINTAXIS BÁSICA DE GO

2.1 Tipos de datos básicos

2.2 Cadenas de texto. El tipo string

2.3 Definición de variables

2.4 Conversiones explícitas de tipos

2.5 Constantes

2.6 Bases de numeración

2.7 Operadores numéricos

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.12 Salida estándar de datos

2.13 Entrada estándar de datos

CAPÍTULO 3. CONTROL DE FLUJO

3.1 Bloques condicionales

3.1.1 if

3.1.2 if ... else

3.1.3 switch - case

3.2 Órdenes iterativas (bucles for)

3.3 Contexto y ocultación de variables

CAPÍTULO 4. APUNTADORES

4.1 Definición de un apuntador

4.2 La referencia a nil

4.3 Apuntando hacia una variable

4.4 Leyendo o modificando el valor apuntado

4.5 Valores versus referencias

CAPÍTULO 5. FUNCIONES

5.1 Definición e invocación

5.2 Retorno de valores

5.3 Retorno de múltiples valores

5.4 Retorno de múltiples valores nombrados

5.5 El identificador vacío

5.6 Paso por valor vs. paso por referencia

5.7 Literales de función

5.8 Otras consideraciones

CAPÍTULO 6. ESTRUCTURAS DE DATOS LINEALES

6.1 Vectores

6.2 Porciones

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

6.12 El operador difusor

CAPÍTULO 7. CADENAS DE TEXTO

7.1 Diferencias con porciones y vectores

7.2 Obteniendo la longitud de un string

7.3 De string a porción

7.4 Construcción dinámica de cadenas

7.4.1 Concatenación de cadenas

7.4.2 Construcción con strings.Builder

7.4.3 Paquete fmt

CAPÍTULO 8. DICCIONARIOS (MAPAS)

8.1 Declaración de mapas

8.2 Acceso a elementos

8.3 Eliminando entradas con delete

8.4 Recorriendo mapas con range

8.5 Contando el número de elementos

8.6 Conjuntos

8.7 Detalles internos de map

CAPÍTULO 9. ORGANIZACIÓN DE CÓDIGO

Paquetes y módulos

9.1 Paquetes (package)

9.2 Módulos

9.3 Creando módulos y paquetes

9.4 Importando paquetes del módulo local

9.4.1 Dependencias circulares

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

9.8 Alias de paquete

9.9 La función init

CAPÍTULO 10. DEFINICIÓN DE TIPOS DE DATOS

10.1 Tipos a partir de porciones

10.2 Tipos a partir de mapas

10.3 Tipos funcionales

10.4 Receptores de función. Métodos

10.5 Tipos pseudoenumerados

10.5.1 El operador iota

10.6 Caso de estudio: time.Duration

CAPÍTULO 11. TIPOS DE DATOS ESTRUCTURADOS

Struct

11.1 Tipos de datos estructurados: struct

11.2 Punteros a 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

CAPÍTULO 12. INTERFACES

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

12.6 Incrustando interfaces

CAPÍTULO 13. GESTIÓN DE ERRORES

13.1 La interfaz error

13.2 Instanciando errores de manera genérica

13.3 Comprobación de tipos de error

13.3.1 Errores centinela

13.3.2 Distintas implementaciones de error

13.4 Envolviendo errores

13.5 Verificando la cadena de errores: errors.As

13.6 defer

13.7 Entrando en pánico

13.8 Función panic

13.9 Función recover

CAPÍTULO 14. ENTRADA Y SALIDA

Flujos de datos

14.1 Interfaces io.Writer e io.Reader

14.2 Archivos de disco

14.3 Entrada y salida formateada

14.4 Paquete bufio

14.5 Paquete ioutil

CAPÍTULO 15. PARALELISMO Y CONCURRENCIA

Gorrutinas

15.1 Un poco de historia

15.2 Gorrutinas

15.3 Sincronización mediante sync.WaitGroup

15.4 Problemas de concurrencia: condiciones de carrera

15.5 Sincronización mediante sync.Mutex

15.5.1 sync.RWMutex

15.6 Sincronización mediante atomic

15.7 Conclusiones: ¿cuándo y cómo sincronizar gorrutinas?

CAPÍTULO 16. CANALES

16.1 Creación, uso y cierre

16.2 Canales solo de lectura y de escritura

16.3 Bloqueo en la escritura: canales con o sin búfer

16.4 Iterando canales con for

16.5 Múltiples receptores

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

CAPÍTULO 17. SERVICIOS WEB

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.1 Interfaz http.Handler

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.1 Carga de controlador

19.2 Abriendo una base de datos

19.3 Modificando la base de datos

19.4 Consultando datos

19.5 Declaraciones preparadas

19.6 Transacciones

19.7 Reserva de conexiones

CAPÍTULO 20. PRUEBAS AUTOMATIZADAS DE SOFTWARE

20.1 Código a probar: la función Factorial

20.2 El paquete testing

20.3 Probando servicios HTTP

20.4 Pruebas de rendimiento

20.5 Cobertura de las pruebas

Programación en Go

Подняться наверх