`
reverocean
  • 浏览: 196125 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

Iterators in Ruby

    博客分类:
  • Ruby
阅读更多
Up to now,I know four iterator methods.They are each,find,collect and inject.

The each method access every element in collections and pass each element to the block which is defined by two braces or do/end.Then you can use the element in block and deal with them by any way.
ruby Code
  1. @songs.each {|song| compareSongs.push(song) if song.name == title} 

The find method access every element and will return the first element which matchs the passed condition in block.If you use this method to find some value in a collection,it will only return the first value neither all the values which match the condition.
ruby Code
 
  1. @songs.find {|song| title == song.name}  
ruby Code
 
  1. [1, 3, 5, 7, 9].find {|v| v*v > 30 } ! 7  


The collect method takes each element from the collection and passes it to the block.The results retured by the block are used to construct a new array.
ruby Code
 
  1. ["H""A""L"].collect {|x| x.succ } ! ["I""B""M"]  

The inject method lets you accumulate a value across the members of a collection.
ruby Code
 
  1. [1,3,5,7].inject(0) {|sum, element| sum+element} ! 16  
  2. [1,3,5,7].inject(1) {|product, element| product*element} ! 105  
分享到:
评论

相关推荐

    eloquent ruby

    - 块(Block)和迭代器(Iterators)。 - 模式匹配(Pattern Matching)。 - 符号(Symbol)的高效利用。 - Lambda与Proc的区别。 5. **Ruby元编程** - 元编程是Ruby的核心优势之一。 - 动态创建方法和属性。 - 使用...

    元编程 Ruby

    4. 代码块(Blocks)、迭代器(Iterators)和Procs:它们是Ruby中实现控制流和数据处理的核心构造,提供了灵活的代码复用和抽象机制。 5. 动态执行:Ruby中的eval函数允许动态地执行字符串中的代码,这是一种强大的...

    Ruby-Ruby技巧惯用Ruby重构和最佳实践

    1. 块和迭代器:Ruby中的块(blocks)和迭代器(iterators)是其强大之处。使用`each`、`map`等方法可以简洁地遍历集合。例如,`array.each { |item| puts item }`用于打印数组的所有元素。 2. 魔术方法:Ruby允许...

    从零到英雄:一步步部署你的Ruby on Rails应用

    4. **闭包和迭代器**:Ruby 支持闭包(blocks)和迭代器(iterators),使得循环和迭代操作更加灵活。 5. **Mixin模块**:Ruby 允许使用 mixin 模块来为类添加方法,而不需要使用传统的继承。 6. **元编程**:Ruby ...

    Programming Ruby

    - **第4章:Containers, Blocks, and Iterators**:讲解容器数据结构、块(block)以及迭代器(iterator)等高级特性。 - **第5章:Standard Types**:介绍Ruby标准类型,如整型、浮点型、字符串等。 - **第6章:More...

    js-iterators:JS中的Ruby样式迭代器

    js-iterators(零依赖) JS中的Ruby样式迭代器。 JS中的Ruby样式范围[ ... 1. . _10 ] ; // [1, 2, 3, 4, 5, 6, 7, 8, 9][ ... 1. . _ - 10 ] ; // [1, 0, -1, -2, ..., -9][ ... Math . PI . _9 ] ; // [3....

    12-iterators-and-generators(迭代器和生成器12).pdf

    然而,需要注意的是,`for..in`对于Map不会遍历其内部的键值对,而是遍历可枚举的属性,如`species`: ```typescript let pets = new Set(["Cat", "Dog", "Hamster"]); pets["species"] = "mammals"; for (let pet ...

    deeplearning4j-datavec-iterators-1.0.0-M1.1-API文档-中文版.zip

    赠送jar包:deeplearning4j-datavec-iterators-1.0.0-M1.1.jar; 赠送原API文档:deeplearning4j-datavec-iterators-1.0.0-M1.1-javadoc.jar; 赠送源代码:deeplearning4j-datavec-iterators-1.0.0-M1.1-sources....

    deeplearning4j-utility-iterators-1.0.0-M1.1-API文档-中文版.zip

    赠送jar包:deeplearning4j-utility-iterators-1.0.0-M1.1.jar; 赠送原API文档:deeplearning4j-utility-iterators-1.0.0-M1.1-javadoc.jar; 赠送源代码:deeplearning4j-utility-iterators-1.0.0-M1.1-sources....

    deeplearning4j-datavec-iterators-1.0.0-M1.1-API文档-中英对照版.zip

    赠送jar包:deeplearning4j-datavec-iterators-1.0.0-M1.1.jar; 赠送原API文档:deeplearning4j-datavec-iterators-1.0.0-M1.1-javadoc.jar; 赠送源代码:deeplearning4j-datavec-iterators-1.0.0-M1.1-sources....

    deeplearning4j-utility-iterators-1.0.0-M1.1-API文档-中英对照版.zip

    赠送jar包:deeplearning4j-utility-iterators-1.0.0-M1.1.jar; 赠送原API文档:deeplearning4j-utility-iterators-1.0.0-M1.1-javadoc.jar; 赠送源代码:deeplearning4j-utility-iterators-1.0.0-M1.1-sources....

    泛型指標(Iterators)與Traits 技術.zip

    迭代器有五个主要的类型:输入迭代器(Input Iterators)、输出迭代器(Output Iterators)、前向迭代器(Forward Iterators)、双向迭代器(Bidirectional Iterators)和随机访问迭代器(Random Access Iterators)...

    ruby:1233

    12. **迭代器(Iterators)**:Ruby的数组、范围和其他集合类都提供了迭代器方法,如`each`,方便遍历和处理元素。 在“ruby-main”这个文件名中,如果它是一个目录或脚本,可能是项目的主要入口点,通常包含初始化...

    Java Methods-Lists and Iterators.ppt

    Java Methods-Lists and Iterators 在 Java 语言中,列表(Lists)和迭代器(Iterators)是两个非常重要的概念。列表是一种数据结构,它可以存储多个元素,而迭代器则是用来遍历列表元素的对象。在本文中,我们将...

    Ruby

    Ruby是一种面向对象的、动态类型的编程语言,以其简洁、优雅的语法和强大的元编程能力而闻名。Ruby由日本人松本行弘(Yukihiro Matsumoto)在1990年代末期设计并开发,其设计理念是融合Perl的实用性、Smalltalk的...

    ROR books 经典教程 入门 提高

    - **Chapter 20 Locking Ruby in the Safe**(安全锁定 Ruby):讨论如何确保 Ruby 代码的安全性。 - **Chapter 21 Reflection, ObjectSpace, and Distributed Ruby**(反射、对象空间与分布式 Ruby):介绍高级特性...

    Program in LUA 2nd Edition.rar

    7.4 Iterators with Complex State 60 7.5 True Iterators 61 8 Compilation, Execution, and Errors 63 8.1 Compilation 63 8.2 C Code 67 8.3 Errors 67 8.4 Error Handling and Exceptions 69 8.5 Error ...

    deeplearning4j-datavec-iterators-1.0.0-M1.1.jar中文-英文对照文档.zip

    注:下文中的 *** 代表文件名中的组件名称。 # 包含: 中文-英文对照文档:【***-javadoc-API文档-中文(简体)-英语-对照版.zip】 jar包下载地址:【***.jar下载地址(官方地址+国内镜像地址).txt】 ...

    learn_oop_ruby:启动School Ruby OOP教程

    6. 集合与迭代(Collections & Iterators): - Array、Hash等集合类型在OOP中广泛使用,它们有自己的方法,如`each`用于遍历元素。 - Proc和Lambda是可调用的对象,常用于定义迭代器和回调。 7. 常量(Constants...

Global site tag (gtag.js) - Google Analytics