‘Next `en` Break’ in Ruby

argumenten doorgeven aan algemene iteratie escape methoden voor betere controle in enumerables.

Ruby biedt twee manieren om uit een enumerable te ontsnappen: next zal de volgende iteratie invoeren zonder verdere evaluatie, en break zal de enumerable volledig verlaten.

laten we snel naar beide Kijken met enkele eenvoudige voorbeelden.

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

in het bovenstaande voorbeeld zien we dat 1 niet wordt afgedrukt op de console, omdat de aanroep naar next triggers op de eerste iteratie (1 is minder dan 2), waarbij het puts wordt overgeslagen. Aan de voorwaarde wordt niet voldaan in de volgende twee iteraties en de puts statement outputs num naar de console, zoals verwacht, gevolgd door een terugkeer van a.

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

met break is er iets heel anders gebeurd. Hier, bij de eerste iteratie, wordt 1 opnieuw geëvalueerd als kleiner dan 2, en dus wordt onze aanroep naar break uitgevoerd, waarbij de enumerable volledig wordt gelaten. In dit geval zien we dat toekomstige iteraties niet plaatsvinden en nil wordt geretourneerd.

hoewel deze escape wenselijk is, wat als we iets anders dan nilmoesten retourneren? Gelukkig accepteren zowel break als next een argument om handmatig een retourwaarde in te stellen.

passerende argumenten

laten we eerst eens kijken hoe het werkt met break:

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

Hier hebben we num als argument voor break (onthoud dat haakjes optioneel zijn in Ruby, dus break num en break(num) worden identiek geëvalueerd) en handmatig de retourwaarde gespecificeerd. Als u ooit iets anders moet retourneren dan nil wanneer break wordt geactiveerd, kan dit uitzonderlijk nuttig zijn.

Geef een antwoord

Het e-mailadres wordt niet gepubliceerd.