自定义的迭代器
可调用一个与方法调用相关联的代码块
def twice
yield
yield
end
def sequence(n,m,c)
i=0
while(i<n)
yield m*i +c
i+=1
end
end
sequence(3,5,1){|y| puts y}
irb(main):008:0> sequence(3,5,1){|y| puts y}
1
6
11
=> nil
更复杂代码,
迭代器内部使用另一迭代器
def circle(r,n)
n.times do |i|
angle=Math::PI * 2*i /n
yield r*Math.cos(angle),r*Math.sin(angle)
end
end
def sequence(n,m,c)
i,s=0,[]
while(i<n)
y=m*i+c
yield y if block_given?
s<<y
i+=1
end
s
end
2011-4-19 14:59 danny
可调用一个与方法调用相关联的代码块
def twice
yield
yield
end
def sequence(n,m,c)
i=0
while(i<n)
yield m*i +c
i+=1
end
end
sequence(3,5,1){|y| puts y}
irb(main):008:0> sequence(3,5,1){|y| puts y}
1
6
11
=> nil
更复杂代码,
迭代器内部使用另一迭代器
def circle(r,n)
n.times do |i|
angle=Math::PI * 2*i /n
yield r*Math.cos(angle),r*Math.sin(angle)
end
end
def sequence(n,m,c)
i,s=0,[]
while(i<n)
y=m*i+c
yield y if block_given?
s<<y
i+=1
end
s
end
2011-4-19 14:59 danny
发表评论
-
39、代码块的语法
2011-05-30 12:26 698代码块的语法 1.upto(10) {|x| puts x} ... -
38、迭代和并发修改
2011-05-29 18:00 594迭代和并发修改 Ruby的核心集合类都是直接对当前的对象集合 ... -
37、外部迭代器
2011-05-28 11:56 509外部迭代器 iterator=9.downto(1) be ... -
娃娃鸭学Ruby-36、枚举器
2011-05-26 13:38 879枚举器 枚举器是类Enumeralbe::Enumerato ... -
娃娃鸭学Ruby-34、可枚举的对象
2011-04-26 22:18 783可枚举的对象 Array、Hash、Range及许多其他类都 ... -
娃娃鸭学Ruby-33、迭代器
2011-04-26 09:39 497虽然可用while,until和for循环 但还是更倾向于用迭 ... -
娃娃鸭学Ruby-32、for/in循环
2011-04-25 09:14 1000For/in循环 for或for/in循环可对一个枚举对象( ... -
娃娃鸭学Ruby-31、作为修饰符的while和until
2011-04-23 22:49 644作为修饰符的while和until x=0 puts x=x ... -
娃娃鸭学Ruby-30、whie和unitl
2011-04-22 23:56 422While和until while 当某个特定条件为真 unt ... -
娃娃鸭学Ruby-29、?:操作符
2011-04-22 09:08 431?:操作符 def how_many_messages(n) ... -
娃娃鸭学Ruby-28、Case
2011-04-21 22:08 535Case name= case wher ... -
娃娃鸭学Ruby-27、Unless
2011-04-21 11:04 638Unless unless,作为一个语句或修饰符,和if恰好相 ... -
娃娃鸭学Ruby-26、作为修饰符的if
2011-04-20 09:09 654作为修饰符的if 采用if的普通语句形式时,Ruby的语法要 ... -
娃娃鸭学Ruby-25、If
2011-04-19 13:17 506if if 是最简单的条件式,具有多种形式 if expres ... -
娃娃鸭学Ruby-24、操作符
2011-04-17 12:01 642操作符 在Ruby语言中, ... -
娃娃鸭学Ruby-23、赋值
2011-04-16 22:02 653赋值 一个赋值表达式可以为一个或多个左值(lvalue)指定一 ... -
娃娃鸭学Ruby-22、方法调用
2011-04-16 13:42 497方法调用 方法调用由四部分组成: 一个任意的表达式,它的 ... -
娃娃鸭学Ruby-21、常量引用
2011-04-15 22:31 619常量引用 除了值在运行期间保持不变外,常量类似于变量。 R ... -
娃娃鸭学Ruby-20、变量引用
2011-04-15 09:01 543变量引用 一个变量就是一个值的名字。 通过赋值表达式可以创建 ... -
娃娃鸭学Ruby-19、字面量和关键字字面量
2011-04-13 08:54 627表达式就是一块Ruby 代码。 在许多语言区分低层的表达式和 ...
相关推荐
这个标题提到的"Ruby-ActiveModel的自定义验证用于检查数组是否包含在另一个中"是一个具体的验证场景,常常在数据校验时会用到,比如确保用户输入的数据符合特定的范围或者限制。 自定义验证是ActiveModel的一个...
标题中的"ruby-2.5.3-x64"指的是Ruby语言的特定版本,2.5.3,这是一个64位的构建。Ruby的版本迭代频繁,每个新版本通常会包含性能优化、新的特性和错误修复。2.5.3是2018年发布的一个稳定版本,它带来了诸如改进的...
Ruby-DingTalkBot是针对阿里钉钉自定义机器人的一款Ruby编程语言实现的库,它使得开发者可以方便地在Ruby环境中与钉钉机器人进行交互,发送各种类型的消息到钉钉群或者个人工作台,从而实现自动化通知、信息推送等...
God的扩展性体现在其插件机制上,你可以编写自定义的插件来实现特定的监控需求。God社区也提供了许多预置插件,用于监控MySQL、Nginx、Resque等常见服务。此外,God还支持通过事件系统与其他系统进行集成,例如发送...
`fast-ruby` 结合了像`Benchmark`模块、`ruby-prof` 和 `pry-byebug` 等工具,教你如何进行代码分析和性能测试。 8. **块和上下文传递** 使用块和Proc对象时,理解闭包行为和上下文关系是关键。`fast-ruby` 展示了...
Ruby-Bluepill是一款由Ruby语言编写的简单而强大的进程监控工具。它被设计用来确保你的应用程序在生产环境中始终保持运行状态,即使某个进程崩溃,Bluepill也会自动重启它,从而提供了高可用性和稳定性。这个工具...
解压`ruby-2.4.5.tar.gz`后,你会得到一个名为`ruby-2.4.5`的目录,其中包含了Ruby源代码的所有文件和子目录。这些文件可能包括但不限于: 1. `README`: 提供关于该版本的基本信息和安装指南。 2. `INSTALL`: 包含...
Ruby-EmojiRSpec是一款专为RSpec设计的自定义格式化程序,它将测试结果以表情符号(Emoji)的形式展示,使得测试输出更加直观和有趣。在Ruby开发过程中,测试是保证代码质量的重要环节,RSpec作为一款强大的行为驱动...
标题中的"ruby-1.9.2-p290.tar.gz"是一个开源编程语言Ruby的特定版本的归档文件,采用流行的tar和gzip格式进行压缩。这个版本是Ruby的1.9.2分支的一个更新点,标记为p290,意味着它是该分支的第290个补丁级别。在...
`ruby-build`还支持自定义配置选项,比如在安装时指定jemalloc作为内存管理器,或者不安装默认的gemset。例如: ```bash $ rbenv install -v 2.7.3 --configure-opt --with-jemalloc ``` 在日常开发中,`rbenv`和`...
Ruby-femto是一个基于Ruby语言实现的轻量级文本编辑器,它的设计目标是极简主义,不依赖任何外部库或组件,使得它在各种环境下都能轻松运行。这个项目展示了Ruby语言的灵活性和实用性,为那些希望快速启动并运行一个...
Ruby-GitScribe是用于创建和管理电子书的开源工具,尤其适合那些希望采用结构化、版本控制的方式来组织内容的作者。它结合了Ruby的灵活性和Git的强大版本控制功能,为编写、组织和发布电子书提供了一种高效的方法。...
`ruby-debug`允许自定义命令别名,例如`alias l p`创建一个别名`l`,它等同于`p`命令。 9. **退出调试器** 输入`q`或`quit`退出调试器。 ### 三、集成开发环境(IDE)支持 许多Ruby IDE和编辑器,如RubyMine、...
Ruby 1.8.7 包含了 Ruby 解释器和其他必要的库,使得开发者能够在这个环境中编写和运行 Ruby 代码。在描述中提到,这个 `.tar.gz` 文件是用户在搭建 Redmine 过程中需要用到的,这表明 Redmine 可能需要特定版本的 ...
在本场景中,"ruby-2.6.1.tar.gz" 是一个Ruby编程语言的特定版本,即2.6.1,以压缩格式提供。这种格式通常是Linux和Unix系统中常见的,用于存储和分发软件包,它可以通过tar命令解压,再用gzip工具进行解压缩。 ...
Ruby-rubyfann是一个Ruby语言编写的库,它为Fast Artificial Neural Network(FANN)提供了一个接口。FANN是一个开源的、快速的神经网络库,主要用于实现人工神经网络(ANNs)。通过ruby-fann,Ruby开发者可以方便地...
Ruby-Whois是一个高效、灵活且完全用Ruby语言编写的WHOIS客户端和解析库。它设计用于查询域名、IP地址和其他WHOIS相关的记录,并能够处理各种服务器响应格式。这个库的强大之处在于它不仅可以发送WHOIS请求,还可以...
标题中的"ruby-1.9.3-p551.tar.gz"表明这是一个使用Ruby编程语言的特定版本,即1.9.3-p551,它被打包成一个gzip压缩的tar档案。Ruby是一种面向对象的、动态类型的脚本语言,广泛用于Web开发、服务器端脚本以及各种...
在描述中提到的"ruby-2.4.0.tar.gz"是Ruby的一个特定版本,即2.4.0,它以压缩格式提供,方便用户下载和安装。这个压缩包通常包含了编译和运行Ruby 2.4.0所需的所有源代码和相关文件。 首先,让我们深入了解一下Ruby...
《笨方法学Ruby》是针对初学者的一本中文教程,旨在通过实践性的学习方式帮助读者掌握Ruby编程语言。这本书的特点是强调动手实践,通过一系列的练习来深化对Ruby语法和编程概念的理解。以下是对该书内容及压缩包文件...