` Næste `og` Break ‘ i Ruby

Passing argumenter til fælles iteration undslippe metoder til bedre kontrol i enumerables.

Ruby giver to måder at undslippe fra en enumerable:next vil indtaste den næste iteration uden yderligere evaluering, ogbreak vil afslutte fra enumerable helt.

lad os tage et hurtigt kig på begge med nogle enkle eksempler.

# Example of `next`a = a.each do |num|
next if num < 2
puts num
end# console output
2
3
=>

i ovenstående eksempel ser vi, at 1 ikke udskrives til konsollen, fordi opkaldet til next udløser den første iteration (1 er mindre end 2), springer puts erklæring. Den betingede er ikke opfyldt i de følgende to iterationer og puts udsagnsudgange num til konsollen, som forventet, efterfulgt af en retur af a.

# Example of `break`a = a.each do |num|
break if num < 2
puts num
end# console output
=> nil

med break noget helt andet er sket. Her på den første iteration evalueres 1 igen som værende mindre end 2, og så udføres vores opkald til break, hvilket efterlader tælleren helt. I dette tilfælde ser vi, at fremtidige iterationer ikke finder sted, og nil returneres.

selvom denne flugt er ønskelig, hvad hvis vi havde brug for at returnere noget andet end nil? Heldigvis accepterer både break og next et argument for manuelt at indstille en returværdi.

passerende argumenter

lad os først se på, hvordan det fungerer med break:

a = a.each do |num|
break num if num < 2
puts num
end# console output
=> 1

Her har vi bestået num som argumentet til break (Husk at parenteser er valgfri i Ruby, så break num og break(num) evalueres identisk) og manuelt angivet returværdien. Hvis du nogensinde skulle have brug for at returnere noget andet end nil når break udløses, kan dette være usædvanligt nyttigt.

Skriv et svar

Din e-mailadresse vil ikke blive publiceret.