El libro "Cabeza primero. Learning Go »

imagenOye. Habrozhiteli! Go facilita la creación de programas simples, confiables y eficientes. Y este libro lo hará accesible a los programadores comunes. El objetivo principal de Go es trabajar eficazmente con las comunicaciones de red y el multiprocesamiento, pero el código en este lenguaje está escrito y no es más difícil de leer que en Python y JavaScript. Los ejemplos simples le permiten familiarizarse con el lenguaje en acción e inmediatamente comenzar a programar en Go. Entonces aprende rápidamente las reglas y técnicas generalmente aceptadas que le permitirán llamarse a sí mismo un Gopher.


Valores cero en matrices


Como en el caso de las variables, al crear matrices, todos los valores contenidos en ellas se inicializan a cero para el tipo contenido en la matriz. Entonces, la matriz de valores int está llena de ceros por defecto:

imagen

Por otro lado, el valor nulo para las cadenas es una cadena vacía, por lo que, de manera predeterminada, la matriz de valores de cadena se llena con cadenas vacías:

imagen

Los valores cero le permiten realizar operaciones de forma segura con elementos de matrices, incluso si no se les han asignado valores. Por ejemplo, la siguiente matriz almacena contadores enteros. Cualquier elemento se puede aumentar en 1 incluso sin asignar primero un valor, porque sabemos que todos los valores de contador comienzan en 0.

imagen

Al crear una matriz, todos los elementos contenidos en ella se inicializan a cero para el tipo almacenado en la matriz.

Arreglos literales


Si conoce de antemano los valores que deben almacenarse en la matriz, puede inicializar la matriz con estos valores en forma de un literal de matriz. Un literal de matriz comienza como un tipo de matriz, con el número de elementos entre corchetes seguido del tipo de elementos. A continuación, entre llaves hay una lista de los valores iniciales de los elementos de la matriz. Los valores de los elementos deben estar separados por comas.

imagen

Estos ejemplos casi no son diferentes de los anteriores, excepto por el hecho de que en lugar de asignar valores secuencialmente a los elementos de la matriz, la matriz completa se inicializa utilizando el literal de la matriz.

imagen

Los literales de matriz también le permiten usar declaraciones de variables cortas con: =.

imagen

Los literales de matriz pueden abarcar varias líneas, pero debe haber una coma antes de cada salto de línea en el código. La coma incluso debe aparecer después del último elemento en el literal de la matriz, si va seguido de un salto de línea. (A primera vista, esta sintaxis parece incómoda, pero simplifica la posterior incorporación de nuevos elementos en el código).

imagen


imagen


Las funciones del paquete "fmt" pueden funcionar con matrices


Cuando está depurando código, no necesita pasar los elementos de las matrices Println a las otras funciones del paquete fmt una por una. Simplemente pase toda la matriz. El paquete fmt contiene la lógica para formatear y generar matrices. (El paquete fmt también funciona con segmentos, mapas y otras estructuras de datos, que se describirán más adelante).

imagen

También puede recordar el verbo "% # v" utilizado por las funciones Printf y Sprintf: formatea los valores tal como aparecen en el código Go. Al formatear con "% # v", las matrices se muestran en forma de literales Go.

imagen

Acceder a elementos de la matriz en un bucle


No es necesario que escriba explícitamente los índices enteros de los elementos de las matrices a las que accede en su código. También puede usar el valor de una variable entera como índice.

imagen

Esto significa que los elementos de la matriz se pueden iterar en un bucle for. El ciclo itera sobre los índices de la matriz, y la variable del ciclo se usa para acceder al elemento con el índice actual.

imagen

Al acceder a los elementos de las matrices a través de una variable, debe actuar con cuidado y controlar qué valores de índice se utilizan en el programa. Como se mencionó anteriormente, las matrices contienen un número específico de elementos. Un intento de acceder al índice fuera de la matriz conduce al pánico, un error que ocurre durante la ejecución del programa (y no en la etapa de compilación).

imagen

Por lo general, en una situación de pánico, el programa se bloquea con un mensaje de error para el usuario. No hace falta decir que tales situaciones deben evitarse siempre que sea posible.

imagen

Comprobación de la longitud de una matriz con la función len


Escribir bucles que están limitados solo por los índices correctos conlleva un cierto riesgo de errores. Afortunadamente, hay un par de trucos que simplifican este proceso.

Primero, puede verificar el número real de elementos en la matriz antes de acceder al elemento. Para hacer esto, puede usar la función de len incorporada, que devuelve la longitud de la matriz (el número de elementos contenidos en ella).

imagen

En el ciclo de procesamiento de toda la matriz, puede usar la función len para determinar a qué índices se puede acceder de forma segura.

imagen

imagen

Enumeración segura de matrices en el ciclo "for ... range"


En otra forma, aún más segura, de procesar todos los elementos de una matriz, se usa un ciclo especial para ... rango. En el formulario con rango, se especifica una variable para almacenar el índice entero de cada elemento, otra variable para almacenar el valor del elemento en sí y una matriz iterada. El bucle se ejecuta una vez para cada elemento de la matriz; el índice del elemento se asigna a la primera variable y el valor del elemento se asigna a la segunda variable. Se incluye un código en el bloque de bucle para procesar estos valores.

imagen

Esta forma del bucle for no contiene expresiones confusas de inicialización, condición y terminación. Y dado que el valor del elemento se asigna automáticamente a la variable, se elimina el riesgo de acceder a un índice de matriz no válido. La forma de bucle for con rango es más fácil de leer y más segura, por lo que ocurre con mayor frecuencia cuando se trabaja con matrices y otras colecciones.

El siguiente es un ejemplo con la salida de todos los valores de una matriz de notas, convertidos para usar un bucle for ... range:

imagen

El bucle se ejecuta siete veces, una para cada elemento en la matriz de notas. Para cada elemento, al índice se le asigna el índice del elemento, y a la nota se le asigna el valor del elemento. Después de eso, imprimimos el índice y el valor.

»Se puede encontrar más información sobre el libro en el sitio web del editor
» Contenido
» Extracto de

Khabrozhiteley 25% de descuento en el cupón - Head First

Al pagar la versión en papel del libro, se envía un libro electrónico por correo electrónico.

All Articles