„Další“ a „Přestávku“ v Ruby

Předávání argumenty společné iterace uniknout metody pro lepší kontrolu v enumerables.

Ruby nabízí dva způsoby úniku z enumerable: next vstoupí do další iterace bez dalšího hodnocení, a break vystoupí z enumerable úplně.

pojďme se rychle podívat na oba s několika jednoduchými příklady.

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

Ve výše uvedeném příkladu vidíme, že 1 není vytištěné na konzole, protože volání na next spouští na první iterace (1 je menší než 2), přeskočení puts prohlášení. Podmíněný není splněna v následujících dvou iterací a puts prohlášení výstupy num do konzole, jak se očekávalo, po kterém následuje návrat a.

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

s break stalo se něco úplně jiného. Tady, na první iterace, 1 je opět hodnocena jako méně než 2, a tak se náš hovor do break je popraven, takže enumerable úplně. V tomto případě vidíme, že se budoucí iterace neuskuteční a nil se vrátí.

i když je tento únik žádoucí, co kdybychom potřebovali vrátit něco jiného než nil? Naštěstí oba break a next akceptují argument pro ruční nastavení návratové hodnoty.

Předávání argumentů

za Prvé, pojďme se podívat na to, jak to funguje u break:

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

Tady jsme prošli num jako argument break (pamatujte si, že závorky jsou volitelné v Ruby, break numbreak(num) jsou hodnoceny shodně), a ručně zadané návratovou hodnotu. Pokud byste měli někdy potřebovat vrátit něco jiného, než nilbreak je spuštěna, to může být mimořádně užitečné.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna.