📜  红宝石 |散列 each()函数(1)

📅  最后修改于: 2023-12-03 15:11:35.708000             🧑  作者: Mango

红宝石 | 散列 each() 函数

散列(Hash)是一个键-值对的集合,其中每个键都是唯一的。在 Ruby 中,Hash 类提供了处理散列的方法和函数。其中之一是 each() 函数。

each() 函数

each() 函数是 Hash 类中的一个迭代器方法,它可以遍历散列中的每个键值对,并对每个键值对执行指定的操作。

以下是一个简单的示例,演示如何使用 each() 函数:

person = { name: "John", age: 30, gender: "Male" }

person.each do |key, value|
  puts "#{key}: #{value}"
end

输出结果:

name: John
age: 30
gender: Male

在这个例子中,我们创建了一个名为 person 的散列,其中包含三个键值对。然后我们使用 each() 函数迭代 person,并对每个键值对执行 puts "#{key}: #{value}"puts 是一种用于输出文本的 Ruby 函数。

使用 each() 函数进行搜索

我们可以使用每个键值对中的值来判断是否找到了散列中的特定项。下面是一个例子:

books = {
  "The Hitchhiker's Guide to the Galaxy" => 1979,
  "The Restaurant at the End of the Universe" => 1980,
  "Life, the Universe and Everything" => 1982,
  "So Long, and Thanks for All the Fish" => 1984,
  "Mostly Harmless" => 1992
}

books.each do |title, year|
  if year > 1980
    puts title
  end
end

输出结果:

Life, the Universe and Everything
So Long, and Thanks for All the Fish
Mostly Harmless

在这个例子中,我们创建了一个名为 books 的散列,其中包含几本书的出版年份。然后我们使用 each() 函数迭代 books,并对每个键值对执行 if year > 1980 puts title。如果出版年份大于 1980,则输出书的标题。

使用 each() 函数进行修改

我们可以使用每个键值对中的值来修改散列中的特定项。下面是一个例子:

numbers = { a: 1, b: 2, c: 3, d: 4 }

numbers.each do |key, value|
  numbers[key] = value * 2
end

puts numbers

输出结果:

{:a=>2, :b=>4, :c=>6, :d=>8}

在这个例子中,我们创建了一个名为 numbers 的散列,其中包含一些数字。然后我们使用 each() 函数迭代 numbers,并对每个键值对执行 numbers[key] = value * 2。这会将每个值乘以 2。最后我们使用 puts 输出 numbers

总结

通过使用 each() 函数,我们可以轻松地遍历散列中的每个键值对,并执行想要的操作。这对于搜索以及修改散列中的特定项非常有用。