November 2012
Intermediate to advanced
888 pages
54h 46m
Polish
Chcemy przerwać trwającą iterację z poziomu bloku kodowego.
W najprostszym przypadku sprowadza się to do wykonania instrukcji break w treści bloku kodowego. Powoduje ona wyskok z najbardziej zagnieżdżonej pętli zdefiniowanej w metodzie sterującej blokiem kodowym:
1.upto(10) do |x| puts x break if x == 3 end # 1 # 2 # 3
Instrukcja break jest mechanizmem bardzo prostym, lecz jej używanie podlega pewnym ograniczeniom. Nie wolno jej używać w treści bloku, dla którego utworzono obiekt Proc za pomocą konstruktora Proc.new lub (w wersji 1.9 języka Ruby) metody Kernel#proc. Jeżeli stanowi to problem, należy zamiast tych metod użyć metody lambda.
aBlock = Proc.new do |x| puts x ...