Ruby学习笔记(07)_块

2017-10-12 19:24:24来源:CSDN作者:slowsnowscar人点击

分享
块的概念

1.块由大量的代码组成。

2.您需要给块取个名称。
3.块中的代码总是包含在大括号 {} 内。
4.块总是从与其具有相同名称的函数调用。这意味着如果您的块名称为 test,那么您要使用函数 test 来调用这个块。
5.您可以使用 yield 语句来调用块。

语法:

block_name{   statement1   statement2   ..........}

yield语句

实例:

#!/usr/bin/ruby# -*- coding: UTF-8 -*-def test   puts "在 test 方法内"   yield   puts "你又回到了 test 方法内"   yieldendtest {puts "你在块内"}

结果:
在 test 方法内
你在块内
你又回到了 test 方法内
你在块内


带叁实例:

#!/usr/bin/ruby# -*- coding: UTF-8 -*-def test   yield 5   puts "在 test 方法内"   yield 100endtest {|i| puts "你在块 #{i} 内"}

结果:
你在块 5 内
在 test 方法内
你在块 100 内


您也可以传递带有参数的 yield 语句。下面是一个实例:

#!/usr/bin/ruby# -*- coding: UTF-8 -*-def test   yield 5   puts "在 test 方法内"   yield 100endtest {|i| puts "你在块 #{i} 内"}

结果:
你在块 5 内
在 test 方法内
你在块 100 内


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

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

yield a, b

此时,块如下所示:

test {|a, b| statement}

块和方法

您已经看到块和方法之间是如何相互关联的。您通常使用 yield 语句从与其具有相同名称的方法调用块。因此,代码如下所示:
实例:

#!/usr/bin/rubydef test  yieldendtest{ puts "Hello world"}

BEGIN 和 END 块

每个 Ruby 源文件可以声明当文件被加载时要运行的代码块(BEGIN 块),以及程序完成执行后要运行的代码块(END 块)。

#!/usr/bin/ruby# -*- coding: UTF-8 -*-BEGIN {   # BEGIN 代码块  puts "BEGIN 代码块 1"} BEGIN {   # BEGIN 代码块  puts "BEGIN 代码块 2"} END {   # END 代码块  puts "END 代码块 1"}END {   # END 代码块  puts "END 代码块 2"}  # MAIN 代码块puts "MAIN 代码块"

结果:
BEGIN 代码块 1
BEGIN 代码块 2
MAIN 代码块
END 代码块 2
END 代码块 1

最新文章

123

最新摄影

闪念基因

微信扫一扫

第七城市微信公众平台