Resumen del capítulo
Repetir instrucciones sin tener que escribirlas una y otra vez es muy útil y lo conseguimos usando diferentes formas de recursión y bucles:
- Salto hasta una etiqueta: una manera un tanto “bajo nivel” de volver a un punto concreto del código usando continue :etiqueta valor. Lo usamos dentro de un switch etiquetado para repetir un bloque con nuevos datos.
- Recursividad: una de las favoritas de los programadores funcionales, consiste en que la función se llama a sí misma pero modificando los parámetros para evitar recursión infinita y no acabar rompiendo el programa. Si vas a usarla - mejor usar la recursión de cola.
- While: ejecuta un bloque de código mientras se cumple una condición, puede llevar una etiqueta y una instrucción de incremento, usar break y continue y también un bloque else que se ejecuta al no entrar en el while o al terminar (si no se usó un break para salir del bucle).
- For: el bucle ideal cuando queremos iterar sobre arrays, slices y rangos. Nos permite recorrerlos incluso en paralelo, obtener el índice automáticamente con 0.. y también podemos usar break y continue para salir y saltar.
- Continue y Break: continue salta al inicio del bucle pasando del resto del bloque y break lo interrumpe. Los usamos para saltarnos elementos no válidos, dejar de iterar o saltar a una etiqueta. Nos permiten complicar controlar el flujo de cualquier iteración.
- Valores opcionales en los bucles y orelse: Podemos capturar opcionales (que pueden ser null) y actuar solo sobre ellos o poner valores por defecto con orelse cuando encontramos un null.