`Neste` og `Pause` I Ruby

Passerer argumenter til vanlige iterasjonsfluktmetoder for bedre kontroll i enumerables.

Ruby gir to måter å rømme fra en enumerable: next vil gå inn i neste iterasjon uten videre evaluering, og break vil gå ut av enumerable helt.

La oss ta en rask titt på begge med noen enkle eksempler.

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

i eksemplet ovenfor ser vi at1 ikke skrives ut på konsollen, fordi kallet tilnext utløser på den første iterasjonen (1 er mindre enn 2), hopper overputs uttalelse. Betingelsen er ikke oppfylt i de følgende to iterasjonene ogputs setningsutgangenenum til konsollen, som forventet, etterfulgt av en retur av a.

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

med break har noe helt annet skjedd. Her, på den første iterasjonen, blir 1 igjen vurdert som mindre enn 2, og så blir vårt kall til break utført, slik at tallet helt. I dette tilfellet ser vi at fremtidige iterasjoner ikke finner sted og nil returneres.

mens denne flukten er ønskelig, hva om vi trengte å returnere noe annet enn nil? Heldigvis aksepterer både break og next et argument for å angi en returverdi manuelt.

Bestått argumenter

Først, la Oss 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 passert num som argument til break (Husk at parenteser er valgfrie i ruby, så break num og break(num) evalueres identisk) og Spesifiseres manuelt returverdien. Hvis du skulle trenge å returnere noe annet enn nil når break utløses, kan dette være svært nyttig.

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert.