易截截图软件、单文件、免安装、纯绿色、仅160KB

ruby迭代器基础

“循环”会用在程序中的各种地方。而在循环的地方善用“迭代器”,则是熟练进行Ruby程序设计的重要关键。
不过,迭代器确实有比较抽象的地方,语法也有点怪异(尤其是yield的用法),光是依靠文字说明、看一两个示例,还是不太好懂。其实,当初笔者开始学习Ruby时就卡在这里,很久都搞不懂。
所以在本章中,将通过很多的示例,来慢慢探索Ruby的迭代器。
20.1   迭代器与区块调用
首先来整理一下用词和术语。在Ruby中说到“迭代器”,通常可能有两种意义。
所谓的“迭代器”,本来是指在反复(iterate)的处理中,用来控制反复方式这个“功能”。而在Ruby语言里,迭代器也表示实现这个功能的方法,或者这种方法的接口。
然而Ruby的迭代器接口,有时候又被用在循环以外的地方,例如,让使用者自定义方法一部分的功能,这个用途已经很难称作是迭代器了。
名称与功能不一致,是导致容易搞混的原因。所以又有人称这些使用迭代器的语法但内容并没有进行反复处理的东西叫做“区块”或“代码区块”。但是这又很容易与while等语句的do~end部分那种程序语言规范上的区块搞混,因此这种用词还是不太好。
所以在这一章中,无论是不是迭代器,凡是“迭代器”的语法接口,都称为“区块调用”。在这里希望读者注意的是,说“迭代器”的时候,表示一定与反复处理有关;而说“区块调用”的时候,就可能不一定与反复处理有关系了。
 
20.2   迭代器的基础知识
迭代器是抽象化的“反复处理”。但抽象思考毕竟不容易,所以让我们从比较具体的反复处理来思考吧。请看程序20.1。
程序20.1  print_times.rb
5.times {
  print "<br>\n"
}
这与单纯调用5次print方法意思是一样的。也就是说,一样的程序可以写成程序20.2这样。
程序20.2  print_no_times.rb
print "<br>\n"
print "<br>\n"
print "<br>\n"
print "<br>\n"
print "<br>\n"
当然,说是“反复处理”,也不尽然是一模一样的动作。
请看下面的示例(程序20.3),用来计算数值1到5的和。
程序20.3  sum_each.rb
sum = 0
(1..5).each{|i|
  sum += i
}
print "合计: ",sum,"\n"
> ruby sum_each.rb
合计: 15
这与下面的程序20.4的意思是一样的。


相关文档:

ruby文件从命令行中接收参数(全局变量:ARGV)


下文转自:
http://www.cnblogs.com/watir/archive/2009/04/25/1443440.html
ruby文件从命令行中接收参数
在命令行方法执行ruby文件时,需要从命令行中传入参数,可以使用全局变量:ARGV
如有ruby 文件test.rb,内容如下:
1 def hello(a)
2   puts a
3 end

5  ......

RUBY实践—Ruby Report之Ruport简单应用

Ruport官方网站:http://www.rubyreports.org/
本例中将介绍Ruby报表的简单开发
开发环境
OS:WindowsXP
Ruby:Ruby1.8.7
Rails:Rails2.3.5
Mysql:Mysql5.0.9
IDE:Rubymine2.0.1
一、安装gem
安装命令
gem install ruport
gem install ruport-util
gem install acts_as_reportable
二、创建数据库
  datab ......

记录下自己Ubunt 10.04 搭建ruby on rails环境

1、安装ubuntu
一路next,记住安装英文版。待安装完毕后,首先选择“软件源”,系统--系统管理-软件源,国内一般选择的是:http://ubuntu.cn99.com/ubuntu;接着安装中文包,选择软件源就是为了下载软件的速度更快,安装完成后重启ubuntu,重启后会提示是否改变某些文件夹名称,选择“否”,防止系统对 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号