functions/yield_basic.rb
tests/_examples/functions/yield_basic.rb in the metorex repository.
def greet(name)
puts("before yield")
yield name
puts("after yield")
end
greet("Alice") do |n|
puts("Hello, " + n)
end
def repeat(n)
i = 0
while i < n
yield i
i = i + 1
end
end
repeat(3) do |x|
puts(x)
end
def with_return_value
result = yield 10
puts(result)
end
with_return_value do |x|
x * 2
end
def no_args_yield
yield
end
no_args_yield do
puts("yielded with no args")
end
Output:
before yield
Hello, Alice
after yield
0
1
2
20
yielded with no args