Re: [Ruby] CATCH ... THROW поясните
Dmitry Morozhnikov
dmiceman на mail.ru
Пн Фев 7 18:06:46 MSK 2005
Hello.
On Monday, February 7, 2005, Ruby usage and development around it wrote:
> Читаю Picaxe/ Но понять смысл и использование не могу. Поясните плиз по
> русски
пример:
a = [1, 2, 3]
b = [:a, :b, :c]
catch(:aaa) do
a.each do |i|
b.each do |k|
puts i.to_s + ' ' + k.to_s
throw :aaa if i == 2 and k == :b
end
end
end
то есть, когда наступает i == 2 и k == :b то происходит выход из
цикла. в схеме это называется escape (или one shoot) continuation.
используется -- да как угодно. в принципе -- эквивалент goto.
запоминаем позицию перехода (сразу после catch) а потом можем на нее
перейти по throw.
--
Dmitry Morozhnikov mailto:dmiceman на mail.ru
Подробная информация о списке рассылки Ruby