- 浏览: 43374 次
- 性别:
- 来自: 大连
文章分类
最新评论
-
wangluo19:
刚刚好解决了我的问题,原来session factory可以把 ...
hibernate annotations和hbm.xml配置文件并存配置 -
vivei:
能者为师
ruby 1,9 多字节字符
Ruby Blocks
Block构成
A block consists of chunks of code.
You assign a name to a block.
The code in the block is always enclosed within braces ({}).
A block is always invoked from a function with the same name as that of the block. This means that if you have a block with the nametest, then you use the function?test?to invoke this block.
You invoke a block by using the?yield?statement.
语法:
block_name{
statement1
statement2
..........
}
Here you will learn to invoke a block by using a simple?yield?statement. You will also learn to use a?yield?statement with parameters for invoking a block. You will check the sample code with both types of?yield?statements.
使用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"}
结果
You are in the method
You are in the block
You are again back to the method
You are in the block
有参数
#!/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}"}
结果
You are in the block 5
You are in the method test
You are in the block 100
在Block块中,使用两个竖线来表示接收的参数
test {|i| puts "You are in the block #{i}"}
如果接收多个参数
test {|a, b| statement}
Blocks and Methods:
块与方法
def test
yield
end
test{ puts "Hello world"}
block作为参数,使用"&"符号,被当作一个Proc对象来处理,利用自身的call方法来进行调用
def test(&block)
block.call
end
test { puts "Hello World!"}
结果
Hello World!
BEGIN and END Blocks
BEGIN Blocks
一般置于文件开始位置,优于其它代码先执行,不受制于程序的逻辑运行。
END Blocks
程序结束时运行,END块受制于程序的逻辑运行。
多个BEGIN Blocks时,按声明顺序执行
多个END Blocks时,正好相反
Ref:
Ruby Blocks
http://www.tutorialspoint.com/ruby/ruby_blocks.htm
发表评论
-
rails 开源blog typo
2011-12-26 16:23 678rails open source blog: htt ... -
ROR网站
2011-07-07 10:56 904# gems http://rubygems.org/ ... -
Rail3 Plugs
2011-02-11 11:24 710Rails3 Plugs Gemfile [1] t ... -
rails3 update_all 使用:order, :limit条件时,忽略条件问题
2011-02-11 11:08 1285这个bug是在使用delay_job(2.1.2)查出来的,后 ... -
Notifications in Rails 3
2011-02-11 10:34 1029249: Notifications in Rails 3 ... -
rails3 jquery ajax
2011-01-30 14:56 2529rails3中使用非form提交的ajax操作,这里使用的js ... -
插件扩展(2)
2011-01-28 16:41 793ruby:1.9.2 rails3.0.3 学习编写 ... -
插件扩展
2011-01-28 11:24 788在ruby on rails3 的guides,插件扩展中有这 ... -
关于restful_authentication密码更新问题
2011-01-05 22:28 1046使用restful_authentication插件时,进行更 ... -
rails3 flash 清除问题
2011-01-05 21:35 1197rails3请求之后,flash内容没有被清除? fl ... -
rails3 更新时间问题
2010-12-18 21:52 1235rails3 更新时间问题(updated_at) (未完) ... -
Ruby基本数据类型
2010-12-09 08:55 913d (转)http://blog.csdn.net/fore ... -
ruby 1,9 多字节字符
2010-12-08 08:53 957ruby 1.9 String类 length ... -
Here document
2010-12-07 08:55 758Here document 用于引入一段较复杂的内容, ... -
About Resouce
2010-12-02 21:40 822关于RESTful风格的URL设计 Singul ... -
Migration and Database Column Types
2010-11-30 23:09 926rails下迁移类与数据库类型对照表: M ... -
rails3 scope dead???
2010-11-29 18:37 1350看到一篇关于rails中是否还继续推荐使用scope的文章 ... -
each, map, collect
2010-11-22 08:38 747each, map, collect arr = ... -
使用cookie的session
2010-11-22 08:36 736使用cookie 的session 修改/depot/ ... -
Validation Helpers(数据验证)
2010-11-22 08:33 738validates_acceptance_of # c ...
相关推荐
swagger-blocks, 定义和服务 ruby 应用程序的动态更新 Swagger Swagger::Blocks Swagger::Blocks 是一个用于纯 ruby 代码块的DSL,可以转换为 JSON 。它帮助你以 Swagger 风格编写API文档,然后自动构建与 Swagger ...
Ruby的块(blocks)和 Proc 对象是其独特之处,它们提供了简洁的回调函数和迭代器。书中会深入解释这些概念,并通过实例展示它们在实际编程中的应用。Ruby还支持闭包,这是一种强大的工具,可以捕获和存储当前环境的...
Ruby的特色包括块(blocks)、闭包(closures)、元类(metaclasses)以及模块(modules),这些特性使得代码可读性高,同时也提供了高度的灵活性。 2. **SaaS软件工程**:SaaS是一种软件交付模式,用户通过互联网...
在函数式编程方面,Ruby支持块(blocks)和Proc对象,它们可以捕获代码块并在需要时执行,这在处理迭代和回调函数时非常有用。Lambda表达式提供了一种更严格的块定义方式,类似于函数,这在编写函数式风格的代码时...
同时,书中也会介绍Ruby的块(blocks)、Proc对象和Lambda,这些都是Ruby中处理代码块的独特方式。 在函数式编程方面,Ruby也提供了一些支持,如闭包和高阶函数。这些特性可以帮助程序员写出更简洁、更可读的代码。...
通过这个中文手册,开发者不仅可以学习到Ruby的基本语法,还可以了解到更高级的主题,如元编程、闭包、 Blocks、Proc对象和Symbol,以及如何利用Ruby的灵活性来创建高效、简洁的代码。同时,了解RGSS可以让开发者...
3. **块(Blocks)和 Proc**:Ruby中的块是代码段,可以通过do..end或花括号{}来定义,Proc是块的可存储形式。书中会介绍如何使用块和Proc进行函数式编程。 4. **闭包和Lambda**:Ruby的Proc和Lambda可以实现闭包,...
4. **Ruby中的块和 Proc**:掌握Ruby中的块(blocks)和Proc对象,以及它们在迭代器和闭包中的应用。 5. **Gem生态系统**:了解Ruby的包管理工具Gem,如何通过Gem来安装和管理第三方库,以及Gemfile的使用。 6. **...
Chapter 3: Ruby’s Building Blocks: Data, Expressions, and Flow Control Chapter 4: Developing Your First Ruby Application Chapter 5: The Ruby Ecosystem Part 2: The Core of Ruby Chapter 6: Classes, ...
You'll enter at Ruby's language basics and work through progressively advanced Ruby features such as classes, inheritance, and blocks. As your Ruby skills grow, you'll tackle deep topics such as ...
- **Numbered Parameters in Blocks**:允许在块中使用数字参数,使代码更简洁。 - **String#unpack1**:新的方法,可以从二进制字符串中提取单个元素。 - **Integer#digits**:返回一个数组,包含整数的二进制、八...
1. **块(Blocks)**:Ruby的块是代码的可重用部分,通常与迭代器一起使用。块可以用`{}`或`do..end`定义,它们可以传递给方法,并在需要的地方执行。 2. ** Proc 和 Lambda**:它们是闭包,可以保存和传递代码。...
3. **块、 proc 和 lambda**:Ruby支持块(blocks),这是一种内联定义的代码段,可以通过`do..end`或花括号`{}`来定义。Proc和Lambda是可存储的代码块,它们可以作为参数传递,返回值,或者用作其他函数。 4. **...
5. 函数式编程元素:虽然主要是一种面向对象的语言,但Ruby也包含了一些函数式编程的概念,如块(Blocks)、 Proc 对象和 Lambda。 6. 高级错误处理:Ruby提供了丰富的异常处理结构,通过 `begin-rescue-end` 块...
3. **块和闭包**:Ruby 支持块(Blocks),这是类似匿名函数的概念,可以作为参数传递给方法。块可以转换为闭包,保持对外部作用域的引用,这对于迭代和回调函数非常有用。 4. **元编程**:Ruby 提供了强大的元编程...
可能仍然有效的旧Ruby: 2.4 、 2.3 、 2.2 、 2.1 、 2.0 文件 gem "unicode-blocks" 用法 require "unicode/blocks" # All blocks of a string Unicode :: Blocks . blocks ( "Abc" ) # => ["Basic Latin"] ...
这些疑问可能涉及到Ruby的面向对象特性、元编程、块(blocks)、proc和lambda等高级特性。 综合以上分析,我们可以期待这份压缩包内的笔记涵盖了Ruby的基础知识,如变量、数据类型、控制结构,以及进阶主题,如类和...