argumentumok átadása a közös iterációs menekülési módszereknek a jobb ellenőrzés érdekében a felsorolásokban.
A Ruby két eszközt biztosít a megszökéshez egy felsorolásból: next
további értékelés nélkül lép be a következő iterációba, és break
teljesen kilép a felsorolásból.
vessünk egy gyors pillantást mindkettőre néhány egyszerű példával.
# Example of `next`a = a.each do |num|
next if num < 2
puts num
end# console output
2
3
=>
a fenti példában azt látjuk, hogy a 1
nem nyomtatódik ki a konzolra, mert a next
az első iterációnál (1 kisebb, mint 2) a puts
nyilatkozat. A feltétel nem teljesül a következő két iterációban, és aputs
utasítás kimeneteknum
a konzolhoz, a várakozásoknak megfelelően, majd aa
visszatér.
# Example of `break`a = a.each do |num|
break if num < 2
puts num
end# console output
=> nil
a break
valami teljesen más történt. Itt az első iterációnál az 1-et ismét 2-nél kisebbnek értékeljük, így a break
hívásunk végrehajtásra kerül, így a felsorolás teljesen megmarad. Ebben az esetben azt látjuk, hogy a jövőbeni iterációk nem történnek meg, és nil
kerül visszaadásra.
bár ez a menekülés kívánatos, mi van, ha valami mást kell visszaadnunk, mint nil
? Szerencsére mind a break
, mind a next
elfogadja az argumentumot a visszatérési érték kézi beállításához.
argumentumok átadása
először nézzük meg, hogyan működik a break
:
a = a.each do |num|
break num if num < 2
puts num
end# console output
=> 1
itt telt el num
mint a break
(ne feledje, hogy a zárójelek nem kötelezőek a Ruby-ban, így a break num
és a break(num)
azonos módon kerülnek kiértékelésre) és manuálisan adja meg a visszatérési értéket. Ha a nil
a break
aktiválásakor valami mást kell visszaadnia, ez kivételesen hasznos lehet.