class TItem
attr_reader :name
def initialize(name)
@name=name
end
def Fibonacci (max)
#初始化
i1,i2=1,1
#循环构建斐波纳契数列
while i1<max
#yield关键字,声明执行块中的内容
#在这儿是传入int=i1并且打印
yield i1
#这样的赋值方式写起来很简洁
i1,i2=i2,i1+i2
end
end
end
arr=Array.new
arr.push(TItem.new('first'))
arr.push(TItem.new('second'))
arr.push(TItem.new('third'))
#依旧支持循环
for i in 0...arr.length
puts arr[i].class==TItem #true
end
#新的迭代方法
titem=arr.find{ |titem| titem.name=='first'}
#打印斐波纳契数列
#{}块中的内容将被TItem.Execute调用
titem.Fibonacci(100){|int| print int,' '}#1 1 2 3 5 8 13 21 34 55 89
#each列举每个元素
arr.each{|titem| puts titem.name} #[first,second,third]
#collect和each是同样的方法
arr.collect{|titem| puts titem.name.succ}#firsu.secone.thire
#书上说应该是string first ,second third
#但是示例出来只有string first ,second.不知为何
#inject的参数是为str赋初值
str=nil
arr.inject("string"){|str ,titem| str+" "+titem.name} #string first second
puts str
#定义另一个数组
arr2=[TItem.new('1'),TItem.new('2'),TItem.new('3')]
#定义方法
def dbexecute(*arrarg)
puts arrarg.length #2
yield arrarg[0] #firstsecondthird
yield arrarg[1] #123
end
#yield迭代执行
dbexecute(arr,arr2) do |array|
array.each{|titem| print titem.name }
puts
end
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/blackant2/archive/2006/11/30/1422831.aspx
分享到:
相关推荐
java-util-iterator.pdfjava-util-iterator.pdfjava-util-iterator.pdf
开源项目-json-iterator-go.zip,jsoniter is now 100% compatible with json.Marshal and json.Unmarshal
c++ 的array源码分析和reverse-iterator和-Array-const-iterator类
Laravel开发-multi-level-array-iterator 提供了一种在任意深度的嵌套数组之间循环的方法
分析-Iterator-base12与-Container-base12
开源项目-thrift-iterator-go.zip,decode/encode thrift message without IDL
前端开源库-async-iterator-allAsyncIterator All,从异步迭代器收集所有值,并将其作为数组返回
面向对象程序设计英文教学课件:14-Design-Iterator.pptx
deque源码分析和类move-iterator,c++的vs2019 ,cpp20语法
Ruby学习笔记 01 类的属性与方法 02 访问控制 03 Container(Array/Hash) 04 Iterator 05 简单数据类型 06 范围 07 方法 08 条件控制 09 异常处理
Iterator.rarIterator.rarIterator.rarIterator.rarIterator.rar迭代器设计模式
安装 ... composer require phpunit/php-file-iterator 如果仅在开发过程中需要此库(例如,运行项目的测试套件),则应将其添加为开发时依赖项: composer require --dev phpunit/php-file-iterator
Triangular类,包含对Triangular类的提领操作Triangular_iterator类,以及异常类iterator_overflow。 输入输出样例为: (3,6) Triangular Series of 6 elements 6 10 15 21 28 36
与--harmony-async-iterator标志一起使用 可以与 IxJS 一起使用 支持自定义承诺 包括打字稿定义 用法 安装 npm install --save lines-async-iterator # or yarn add lines-async-iterator 示例 1(基本) const ...
var iterator = require ( 'partition-refinement-iterator' ) ; var iterate = iterator ( Number ( process . argv [ 2 ] ) ) ; while ( true ) { var n = iterate ( ) ; if ( typeof n == 'undefined' ) break ...
官方离线安装包,测试可用。使用rpm -ivh [rpm完整包名] 进行安装
支持node.js 4及更高版本。安装 $ npm install stream-to-async-iterator这些示例为for-of循环提供了使用async / await语法。 这假定您所处的环境本身就支持此新语法,或者您使用的是Babel之类的工具。 另外,为了...
官方离线安装包,测试可用。请使用rpm -ivh [rpm完整包名] 进行安装