yield 关键字在 ruby 中表示调用块。
yield 的出现应该满足两个条件:一个方法的定义,在方法内部有 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 "你在块内"}
程序运行后,控制台输出如下:
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} 内"}
程序运行后,控制台输出如下:
在这里,yield 语句后跟着参数。您甚至可以传递多个参数。在块中,您可以在两个竖线之间放置一个变量来接受参数。因此,在上面的代码中,yield 5 语句向 test 块传递值 5 作为参数。
现在,看下面的语句:
test {|i| puts "你在块 #{i} 内"}
在这里,值 5 会在变量 i 中收到。现在,观察下面的 puts 语句:
puts "你在块 #{i} 内"
这个 puts 语句的输出是:
你在块5 内
如果您想要传递多个参数,那么 yield 语句如下所示:
yield a, b
此时,块如下所示:
test {|a, b| statement}
参数使用逗号分隔。
yield 的出现应该满足两个条件:一个方法的定义,在方法内部有 yield 的出现;一个是方法的调用处,在方法的调用处会有程序块的出现。