首页 > 编程语言 >无涯教程-Ruby - 迭代器

无涯教程-Ruby - 迭代器

时间:2023-11-20 12:32:18浏览次数:30  
标签:哈希 迭代 ruby 无涯 collect 数组 集合 Ruby

迭代器不过是 collections 集合支持的方法。存储一组数据成员的对象称为集合。在Ruby中,数组和哈希可以称为集合。

迭代器一个接一个地返回集合的所有元素。无涯教程将在这里讨论两个迭代器,分别是 each 和 collect 。

Each 迭代器

每个迭代器返回数组或哈希的所有元素。

collection.each do |variable|
   code
end

为集合中的每个元素执行代码。在这里,集合可以是数组或Ruby哈希。

#!/usr/bin/ruby

ary=[1,2,3,4,5]
ary.each do |i|
   puts i
end

这将产生以下输出-

1
2
3
4
5

Collect 迭代器

collect 迭代器返回集合的所有元素。

collection=collection.collect

collect 方法不必始终与块关联。 collect 方法返回整个集合,而不管它是数组还是哈希。

#!/usr/bin/ruby

a=[1,2,3,4,5]
b=Array.new
b=a.collect
puts b

这将产生以下输出-

1
2
3
4
5

注意- collect 方法不是在数组之间进行复制的正确方法。还有一种称为 clone 的方法,该方法应用于将一个数组复制到另一个数组中。

如果要对每个值进行操作以获取新数组,通常可以使用collect方法。例如,此代码产生一个数组 b ,该数组包含 a 中每个值的10倍。

#!/usr/bin/ruby

a=[1,2,3,4,5]
b=a.collect{|x| 10*x}
puts b

这将产生以下输出-

10
20
30
40
50

参考链接

https://www.learnfk.com/ruby/ruby-iterators.html

标签:哈希,迭代,ruby,无涯,collect,数组,集合,Ruby
From: https://blog.51cto.com/u_14033984/8487120

相关文章

  • [实验任务一]:JAVA和C++常见数据结构迭代器的使用
    信1305班共44名同学,每名同学都有姓名,学号和年龄等属性,分别使用JAVA内置迭代器和C++中标准模板库(STL)实现对同学信息的遍历,要求按照学号从小到大和从大到小两种次序输出学生信息。实验要求:1. 搜集并掌握JAVA和C++中常见的数据结构和迭代器的使用方法,例如,vector,list,map和set等......
  • 实验18:迭代器模式
    软件设计                 石家庄铁道大学信息学院 实验18:迭代器模式本次实验属于模仿型实验,通过本次实验学生将掌握以下内容: 1、理解迭代器模式的动机,掌握该模式的结构;2、能够利用迭代器模式解决实际问题。 [实验任务一]:JAVA和C++常见数据结构迭代器......
  • 数据结构和迭代器的使用方法
    Java数据结构和迭代器使用方法1. ArrayList(动态数组)创建ArrayList:ArrayList<String>list=newArrayList<>();添加元素:list.add("Element1");list.add("Element2");访问元素:Stringelement=list.get(0);迭代器遍历:Iterator<String>iter......
  • 无涯教程-Ruby - 模块语句
    Module语法moduleIdentifierstatement1statement2...........end模块常量的命名与类常量一样,并带有大写字母开头。方法定义也看起来相似:模块方法的定义就像类方法一样。与类方法一样,您可以通过在模块名称前加上模块名称和句点来调用模块方法,并使用模块名称和......
  • 无涯教程-Ruby - 变量声明
    变量是存储位置,用于保存任何程序要使用的任何数据,Ruby支持五种类型的变量,本章介绍了这五种变量。Ruby全局变量全局变量以"$"开头。未初始化的全局变量的值为nil并使用-w选项生成警告。分配给全局变量会更改全局状态,不建议使用全局变量,它们使程序变得很难维护,下面是全局变量......
  • 掌握迭代器:Python中的强大工具,让你轻松驾驭数据处理的巨轮
    今天,我们将深入探讨Python中的迭代器。迭代器是一种强大的工具,它使我们能够在不需要知道数据集的全部信息的情况下,逐个访问数据集中的每个元素。通过使用迭代器,我们可以逐个处理数据集中的每个元素,而不需要一次性加载整个数据集到内存中。这使得迭代器在处理大型数据集时特别有用。......
  • 无涯教程-Ruby - Blocks块
    您已经了解了Ruby是如何定义方法的,可以在其中放置大量语句,然后调用该方法。同样,Ruby也具有Block的概念。Block语法block_name{statement1statement2..........}在这里,您将学习使用简单的yield语句来调用块。您还将学习使用带参数的yield语句来调用块。Yie......
  • 无涯教程-Ruby - 方法声明
    Ruby方法与任何其他编程语言中的函数都非常相似。 方法名称应以小写字母开头,如果您以大写字母开头的方法名称,Ruby可能会认为它是一个常量,因此可能会错误地解析该调用。方法应该在调用它们之前定义,否则Ruby将为未定义的方法调用引发异常。语法defmethod_name[([arg[=def......
  • 无涯教程-Ruby - 注释符
    注释是Ruby代码中的注释行,在运行时会被忽略。一行注释以#字符开头,它们从#延伸到该行的末尾,如下所示-#!/usr/bin/ruby-w#Thisisasinglelinecomment.puts"Hello,Ruby!"执行后,上述程序会产生以下输出-Hello,Ruby!Ruby多行注释您可以使用=begin和=end语法注释多......
  • 无涯教程-Ruby - 类和对象
    面向对象的程序涉及类(Class)和对象(Object)。以车辆为例,它包括车轮,马力以及燃油或汽油箱的容量。这些特征构成了Vehicle类的数据成员,车辆还可以具有某些函数,如停止,驾驶和超速行驶,因此,您可以将类定义为特征和函数的组合。车辆类(Vehicle)别可以定义为-ClassVehicle{Numb......