Ruby 中的 yield 关键字
我们可以向我们的方法发送一个块,它可以多次调用该块。这可以通过发送 proc/lambda 来完成,但使用 yield 会更容易和更快。在方法调用期间,与块结合使用的yield关键字允许传递一组附加指令。当在方法中调用 yield 时,方法需要一个包含在其中的块。块只是一段代码,yield 允许我们在某个地方将该代码注入到方法中。
Simple Yield:当在方法体中使用yield关键字时,将允许我们使用代码块调用该方法。下面是简单易懂的收益程序。
# Ruby program of using yield keyword
def geeks
puts "In the geeks method"
# using yield keyword
yield
puts "Again back to the geeks method"
yield
end
geeks {puts "This is block"}
输出:
In the geeks method
This is block
Again back to the geeks method
This is block
带参数的让步:下面是带参数的让步程序。
# Ruby program of using yield keyword
# with argument
def gfg
yield 2*3
puts "In the method gfg"
yield 100
end
gfg {|i| puts "block #{i}"}
输出 :
block 6
In the method gfg
block 100
在上面的例子中,yield 语句后面跟有参数。我们甚至可以在 yield 之后传递多个参数。为了接受参数,我们在两条垂直线 (||) 之间放置了一个变量 (i)。
Yield with Return value:可以通过简单地将yield的返回值分配给变量来获得块的返回值。如果我们将 yield 与参数一起使用,它将将该参数传递给块。
# Ruby program of using yield keyword
# with return value
def yield_with_return_value
geeks_for_geeks = yield
puts geeks_for_geeks
end
yield_with_return_value { "Welcome to geeksforgeeks" }
输出:
Welcome to geeksforgeeks
geeks_for_geeks 变量获取块返回的“Welcome to geeksforgeeks”,并使用 puts 显示。