• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • vbs
  • DOS/BAT
  • hta/htc
  • python
  • perl
  • VBA
  • ColdFusion
  • ruby
  • PowerShell
  • Lua
  • Golang
  • linux shell
您的位置:首页 > 脚本语言 >ruby > 详解Ruby中的块的知识

详解Ruby中的块的知识

作者:goldensun 字体:[增加 减小] 来源:互联网

goldensun 通过本文主要向大家介绍了ruby,ruby碧玺,ruby woo口红,mac ruby woo口红,ruby教程等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

 语法:

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

</div>

在这里,将学习如何通过使用一个简单的 yield 语句调用块。还将学习使用yield语句具有参数调用块。将检查的示例代码,这两种类型的 yield 语句。
yield 语句:

让我们来看看在yield语句的一个例子:

#!/usr/bin/ruby

def test
  puts "You are in the method"
  yield
  puts "You are again back to the method"
  yield
end
test {puts "You are in the block"}

</div>

这将产生以下结果:

You are in the method
You are in the block
You are again back to the method
You are in the block

</div>

也可以通过参数与屈服声明。下面是一个例子:

#!/usr/bin/ruby

def test
  yield 5
  puts "You are in the method test"
  yield 100
end
test {|i| puts "You are in the block #{i}"}

</div>

这将产生以下结果:

You are in the block 5
You are in the method test
You are in the block 100

</div>

这里的 yield 语句写到后面跟着参数。甚至可以传递多个参数。在该块中放置在两条垂直线之间的变量(| |)接收的参数。因此,在上面的代码中,yield5语句将试块作为一个参数值5。

现在看看下面的语句:

test {|i| puts "You are in the block #{i}"}

</div>

在这里,在变量i中的值为5。现在遵守以下 puts 语句:

puts "You are in the block #{i}"

</div>

puts 语句的输出是:

You are in the block 5

</div>

如果想超过一个参数,然后yield语句就变成了:

yield a, b

</div>

那么块是:

test {|a, b| statement}

</div>

这些参数将用逗号隔开。
块和方法:

我们已经看到了如何将一个块和方法关联。通常调用块从块具有相同名称的方法,通过使用yield语句。因此,编写:

#!/usr/bin/ruby

def test
 yield
end
test{ puts "Hello world"}

</div>

这个例子是最简单的方式来实现一个块。调用块 test 使用yield语句。
但是,如果最后一个参数的方法前面加上&,那么可以通过一个块这种方法,此块将被分配到最后一个参数。

*和&在参数列表中&还在后面。

#!/usr/bin/ruby

def test(&block)
  block.call
end
test { puts "Hello World!"}

This will produce following result:

Hello World!

</div>

BEGIN 和 END 块

每一个Ruby源文件都可以声明的代码块作为文件被加载运行(BEGIN块)后,该程序已执行完毕(END块)。

#!/usr/bin/ruby

BEGIN { 
 # BEGIN block code 
 puts "BEGIN code block"
} 

END { 
 # END block code 
 puts "END code block"
}
 # MAIN block code 
puts "MAIN code block"

</div>

一个程序可能包括多个BEGIN和END块。 BEGIN块以遇到它们的顺序执行。 END块以相反的顺序执行。上述程序执行时,会产生以下结果:

BEGIN code block
MAIN code block
END code block

</div>

</div>

您可能想查找下面的文章:

  • ruby迭代map的简洁写法实现原理分析
  • Ruby中访问SQL Server数据库的配置实例
  • ruby声明式语法的实现例子
  • Ruby中的Range对象学习笔记
  • Ruby中的String对象学习笔记
  • Ruby的基本语法学习总结
  • Ruby中的方法(函数)学习总结
  • Ruby中的变量学习总结
  • Ruby数组(Array)学习笔记
  • Ruby和元编程之万物皆为对象

相关文章

  • 用SparkR探索电商数据
  • Ruby on Rails中的ActiveResource使用详解
  • Rails脚手架使用实例
  • Ruby实现的各种排序算法
  • 用实际代码演示Ruby的容易被误解的6个特性
  • Ruby进行文件信息输出实例代码
  • ruby 流程控制 方法
  • 深入剖析Ruby设计模式编程中对命令模式的相关使用
  • openSUSE下的Ruby安装openssl出错解决方法
  • Ruby中使用Block、Proc、lambda实现闭包

文章分类

  • vbs
  • DOS/BAT
  • hta/htc
  • python
  • perl
  • VBA
  • ColdFusion
  • ruby
  • PowerShell
  • Lua
  • Golang
  • linux shell

最近更新的内容

    • ruby 小脚本搞定CVS服务器更换后checkout下来的工程迁移
    • Ruby on Rails中的ActiveResource使用详解
    • Ruby简明教程之判断语句介绍
    • Ruby面向对象编程中类与方法的基础学习
    • 深入理解Ruby中的代码块block特性
    • 设计模式中的观察者模式在Ruby编程中的运用实例解析
    • ruby 迭代器使用方法
    • Ruby程序中正则表达式的基本使用教程
    • Ruby数组(Array)学习笔记
    • Ruby self在不同环境的含义

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有