Go

Comparación directa de errores en Go

Es un fallo habitual, en el manejo de errores dentro de Go, realizar comparasiones de strings contra el mensaje del error que quieres reconocer, pero lo cierto es que, el modo más acertado de discernir que error estas manejando, es hacer una comparación de tipos de error dentro de una sentencia case.

¿Quiero decir entonces que puedo gestionar distintos tipos de error? Claro que sí. Fíjate que, en Go, todo lo que inplemente la interface error es un error. Además, puedes comprobar por tí mismo que es una interface muy sencilla:

Comprobación de tipo de error en Go

Es un fallo habitual, en el manejo de errores dentro de Go, realizar comparasiones de strings contra el mensaje del error que quieres reconocer, pero lo cierto es que, el modo más acertado de discernir que error estas manejando, es hacer una comparación de tipos de error dentro de una sentencia case.

¿Quiero decir entonces que puedo gestionar distintos tipos de error? Claro que sí. Fíjate que, en Go, todo lo que inplemente la interface error es un error. Además, puedes comprobar por tí mismo que es una interface muy sencilla:

Canales en Go

Los canales son la característica que Go nos facilita para comunicar entre sí goroutines y poder sincronizar su ejecución.

var c chan string = make(chan string)

El tipo canal se representa con la palabra chan y, a continuación, el tipo de los datos que viajaran a través de dicho canal. En el ejemplo de arriba he declarado la variable c, que contendrá un canal para transferir datos de tipo string. En la misma línea de código he usado make para crear dicho canal que, como puedes observar, se asigna a la variable c.

Go testing

Go incluye un programa llamado go test que te será de gran utilidad para poner a prueba funciones de tu código. Esto es realmente útil para asegurarte de que todo funciona como debería hacerlo después de añadir características o de realizar cambios importantes en tu desarrollo. Para poder fabricar un ejemplo con el uso de go test, supongamos que has escrito un archivo llamado math.go, y que dicho archivo contiene una función que sirve para calcular el promedio de un conjunto de números: