这两个月比较忙,没有时间更新BLOG,今天开始继续。
ruby 中的block 和iterator 为我们在迭代编程中提供了更简单和自然的方法,block 跟随在方法调用后面,以{}包含代码部分。方法内部用yield调用block中的代码内容,block 的作用简单的说就是影响方法体内的代码行为,类似的功能比如在C#里的delegate,c/c++里的方法指针。
def three_times
i=1
while i<4
yield i
i +=1;
end
end
three_times{ |i| puts i}
#output
#1
#2
#3
有了block,在数组的循环应用中就可以写出十分简洁的语句
打印数组元素中的第一个字符,这里用到了数组的each方法。
%w{hello world ruby}.each { |str| puts str[0,1] }
#output
#h
#w
#r
计算int数组的和,这里用到了inject方法,sum是用来得到执行的值,等价于sum = sum+item,
最后返回sum。
puts [1,3,5,7,9].inject{ |sum,item| sum+item }
#output
#25
下面再看看一个Block的实际应用
在Rails中layout是做为模板页使用的,可有的时候我们需要在不同的页面调用不同的JS,又不想全部写在模板页里面,这个时候可以使用block来灵活调用.
在ApplicationHelper module里定义pagejs方法
def pagejs(*jsname)
jsname.each{|item| content_for("pagejs"){ javascript_include_tag(item) }}
end
然后在layout/index.rhtml 里加入
<%= yield :pagejs %>
最后在要使用的view页面的第一行调用
<%pagejs("user")%>
呈现出的html源码中就会出现
<script src="/javascripts/user.js?1207145282" type="text/javascript"></script>
分享到:
相关推荐
《Programming Ruby》是一本关于Ruby编程语言的经典著作,由Dave Thomas、Andy Hunt和Chad Fowler合著。这本书自2004年初版以来,一直是学习Ruby的首选资源,被誉为“Pickaxe”书,因其封面的图标而得名。Ruby是一种...
本书是《Programming Ruby, The Pragmatic Programmers' Guide》的第二版,为读者提供了一个深入了解Ruby编程语言的机会。 根据描述,“Programming Ruby”被赞誉为一本既聪明又有趣的书,它不仅教授了Ruby语言本身...
标题中的"ruby笔记1ruby笔记1ruby笔记1"暗示了这是一份关于Ruby编程语言的学习笔记,可能包含了作者在学习过程中的重点、难点以及心得体验。描述中的内容重复了标题,进一步强调了这是关于Ruby的深入学习记录。标签...
SIMATIC PCS 7 Programming Instructions for Blocks manualpdf,SIMATIC PCS 7 Programming Instructions for Blocks manual
- **第4章:Containers, Blocks, and Iterators**:讲解容器数据结构、块(block)以及迭代器(iterator)等高级特性。 - **第5章:Standard Types**:介绍Ruby标准类型,如整型、浮点型、字符串等。 - **第6章:More...
"ruby笔记2ruby笔记2ruby笔记2"可能是指一系列关于Ruby学习的笔记,这些笔记可能涵盖了Ruby的基础概念、核心特性以及进阶话题。在Ruby的学习过程中,理解和掌握以下几个关键知识点至关重要: 1. **面向对象编程...
在《The Ruby Programming Language》这本书中,作者深入浅出地介绍了Ruby的各个方面,从基础语法到高级特性的应用,是学习和理解Ruby的宝贵资源。书中涵盖了类和对象、模块、方法、变量、控制结构、异常处理、正则...
书名《Pro TBB C++ Parallel Programming with Threading Building Blocks》指出了本书的主要内容是使用Threading Building Blocks (TBB) 进行C++并行编程。Threading Building Blocks 是一个由Intel开发的C++模板库...
同时,书中也会介绍Ruby的块(blocks)、Proc对象和Lambda,这些都是Ruby中处理代码块的独特方式。 在函数式编程方面,Ruby也提供了一些支持,如闭包和高阶函数。这些特性可以帮助程序员写出更简洁、更可读的代码。...
### Blocks Programming Topics #### Introduction Blocks是C语言层面的一个语法和运行时特性,它们类似于标准C函数,但除了可执行代码之外,还可以包含对自动(栈)或管理(堆)内存中的变量绑定。这意味着一个块...
本资源“学习 Ruby 的笔记以及 Demo.zip”显然包含了关于Ruby编程的学习资料和一些实际示例代码,旨在帮助初学者理解并掌握Ruby的基础及进阶特性。 首先,让我们深入了解一下Ruby的核心特性: 1. 面向对象:Ruby是...
#### 第四章 Blocks和变量 **4.1 变量类型** Block可以捕获多种类型的变量,包括基本类型、指针类型、结构体等。 **4.2 __BLOCK存储类型** 为了能够在Block内部修改外部作用域内的变量,需要使用`__block`关键字...
Programming LEGO EV3 My Blocks Teaching Concepts and Preparing for FLL Competition 英文epub 本资源转载自网络,如有侵权,请联系上传者或csdn删除 查看此书详细信息请在美国亚马逊官网搜索此书
通过这个中文手册,开发者不仅可以学习到Ruby的基本语法,还可以了解到更高级的主题,如元编程、闭包、 Blocks、Proc对象和Symbol,以及如何利用Ruby的灵活性来创建高效、简洁的代码。同时,了解RGSS可以让开发者...
1. **面向对象编程(Object-Oriented Programming, OOP)**:Ruby是完全的面向对象语言,每个值都是一个对象,包括基本类型如整数、字符串和布尔值。类是创建对象的蓝图,实例化一个类就能创建一个新的对象。理解类...
Learn the principles behind object-oriented programming and within a few chapters create a fully functional Ruby application. You'll also gain a basic understanding of many ancillary technologies such...