Ruby yield语句

Ruby yield教程

yield 关键字在 ruby 中表示调用块。

yield 的出现应该满足两个条件:一个方法的定义,在方法内部有 yield 的出现;一个是方法的调用处,在方法的调用处会有程序块的出现。

案例

ruby yield使用

Ruby yield的使用

#!/usr/bin/ruby -w # -*- coding : utf-8 -*- puts "HaiCoder(www.haicoder.net)" def test puts "在 test 方法内" yield puts "你又回到了 test 方法内" yield end test {puts "你在块内"}

程序运行后,控制台输出如下:

02_Ruby yield使用.png

yield 的使用。

ruby yield使用

带参数 yield 的使用

#!/usr/bin/ruby -w # -*- coding : utf-8 -*- puts "HaiCoder(www.haicoder.net)" def test yield 5 puts "在 test 方法内" yield 100 end test {|i| puts "你在块 #{i} 内"}

程序运行后,控制台输出如下:

03_Ruby yield使用.png

在这里,yield 语句后跟着参数。您甚至可以传递多个参数。在块中,您可以在两个竖线之间放置一个变量来接受参数。因此,在上面的代码中,yield 5 语句向 test 块传递值 5 作为参数。

现在,看下面的语句:

test {|i| puts "你在块 #{i} 内"}

在这里,值 5 会在变量 i 中收到。现在,观察下面的 puts 语句:

puts "你在块 #{i} 内"

这个 puts 语句的输出是:

你在块5

如果您想要传递多个参数,那么 yield 语句如下所示:

yield a, b

此时,块如下所示:

test {|a, b| statement}

参数使用逗号分隔。

Ruby yield总结

yield 的出现应该满足两个条件:一个方法的定义,在方法内部有 yield 的出现;一个是方法的调用处,在方法的调用处会有程序块的出现。