Istnieje wiele sposobów, aby to zrobić w Ruby, z których jedna jest użycie Proc:
foo=Proc.new do |test|
puts test
end
3.upto(8) { foo.call("hello world") }
Więcej o Procs:
Update, powyższy sposób może być zapisane w następujący sposób:
# using lower-case **proc** syntax, all on one line
foo = proc { |test| puts test }
3.upto(8) { foo.call("hello world") }
# using lambda, just switch the method name from proc to lambda
bar = lambda { |test| puts test }
3.upto(8) { bar.call("hello world") }
Są to zasadniczo bardzo podobne metody, z subtelnymi różnicami.
I na koniec, istnieją prawdopodobnie bardziej eleganckie sposoby robienia tego, co opisałem, dobrze jest usłyszeć od każdego, kto ma lepszy sposób. Mam nadzieję że to pomoże.
Wielkie dzięki. Dla łącza jeszcze więcej. Czy możesz być tak uprzejmy, aby dodać wzmiankę o lambdas? Do celów historycznych. –
@Shingetsu, dodałem i zaktualizowałem z lambda, a także nieco uproszczoną wersję podejścia proc też – stephenmurdoch
@Shingetsu: Lambdas nie są historyczne. Powinieneś prawie * zawsze * używać ich zamiast Proc. Są dużo bardziej w pełni funkcjonalne i są standardem. – Linuxios