` Next `I` Break ’ w Ruby

przekazywanie argumentów do typowych metod ucieczki iteracji dla lepszej kontroli w enumerables.

Ruby zapewnia dwa sposoby ucieczki z enumerable:next wprowadzi następną iterację bez dalszej oceny, abreak całkowicie wyjdzie z enumerable.

rzućmy okiem na oba z prostymi przykładami.

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

w powyższym przykładzie widzimy, że 1nie jest drukowany do konsoli, ponieważ wywołanie nexturuchamia się podczas pierwszej iteracji (1 jest mniejsze niż 2), pomijając puts oświadczenie. Warunek nie jest spełniony w dwóch kolejnych iteracjach, a polecenieputs wysyłanum do konsoli, zgodnie z oczekiwaniami, po czym następuje zwrota.

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

zbreak stało się coś zupełnie innego. Tutaj, w pierwszej iteracji, 1 Ponownie jest obliczane jako mniejsze niż 2, a więc nasze wywołanie do break jest wykonywane, pozostawiając w całości wyliczenie. W tym przypadku widzimy, że przyszłe iteracje nie mają miejsca i zwracany jest nil.

chociaż ta ucieczka jest pożądana, co jeśli musimy zwrócić coś innego niżnil? Na szczęście zarówno break, jak i next akceptują argument, aby ręcznie ustawić wartość zwracaną.

przekazywanie argumentów

najpierw spójrzmy, jak to działa z break:

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

tutaj przekazaliśmy num jako argument do break (pamiętaj, że nawiasy są opcjonalne w Rubim, więc break num I break(num) są obliczane identycznie) i ręcznie określa wartość zwracaną. Jeśli kiedykolwiek powinieneś zwrócić coś innego niż nil, gdy break jest wyzwalane, może to być wyjątkowo przydatne.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany.