2010-07-04 30 views
10

No encuentro ningún recurso útil en línea que descomponga las diferentes opciones de control de flujo de Ruby.Control de flujo Ruby

Supongamos que estoy interactuando sobre una matriz dentro de un método:

def a_method 
    things.each do |t| 
     # control options? 
    end 
end 

¿Cuáles son mis opciones diferentes de control de flujo aquí? ¿Cómo difieren?

  1. reintento
  2. retorno
  3. ruptura
  4. próxima
  5. rehacer

Respuesta

16

retry se puede utilizar dentro de un bloque de rescate, para saltar de nuevo en el bloque comenzará después de la condición que causó la excepción ha sido remediada Dentro de un bloque tiene el efecto de saltar al comienzo del método de rendimiento. Entonces dentro de cada uno esto significa que el reintento saltará al principio del ciclo.

return volverán a partir del método que está dentro de - en este caso de a_method.

break volverá a partir del método rendimiento - en este caso de each (que sería diferente de regresar de a_method si algo sucedió entre el final de cada bloque y el final de a_method).

next volverá desde el bloque y saltará al siguiente elemento en things.

redo saltará al principio del bloque y, por lo tanto, repetirá la iteración actual.

Cuestiones relacionadas