📜  红宝石 |可枚举成员?函数(1)

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

红宝石 | 可枚举成员和函数

Ruby是一种动态面向对象的编程语言,它支持多种编程范式,如面向对象编程、函数式编程和命令式编程。另外,Ruby有一个强大的特性,即它允许开发者轻松地定义可枚举成员和函数。

可枚举成员

Ruby中,可枚举成员是指那些可以通过循环遍历的变量,如数组、哈希表、范围对象等。Ruby提供了each方法,让我们能够遍历可枚举成员。示例如下:

# 遍历数组
arr = [1, 2, 3, 4, 5]
arr.each do |num|
  puts num
end

# 遍历哈希表
hash = {foo: 1, bar: 2, baz: 3}
hash.each do |key, value|
  puts "#{key}: #{value}"
end

# 遍历范围对象
(1..5).each do |num|
  puts num
end

此外,Ruby还提供了一系列其他可枚举成员相关的方法,如mapselectrejectreduce等,它们能够帮助我们更方便地对可枚举成员进行操作。例如:

# 将数组中的所有元素乘以2
arr = [1, 2, 3, 4, 5]
new_arr = arr.map { |num| num * 2 }
puts new_arr # => [2, 4, 6, 8, 10]

# 选出哈希表中值大于2的键值对
hash = {foo: 1, bar: 2, baz: 3}
new_hash = hash.select { |key, value| value > 2 }
puts new_hash # => {baz: 3}
函数

在Ruby中,函数被称为方法,它们是一组可以重复使用的语句,接收零个或多个参数,执行某些操作,并返回结果。Ruby中定义方法很简单,只需要使用def关键字即可。示例如下:

# 定义一个打印欢迎信息的方法
def welcome(name)
  puts "Welcome, #{name}!"
end

# 调用方法
welcome("Alice") # => "Welcome, Alice!"
welcome("Bob")   # => "Welcome, Bob!"

方法的参数可以是任何类型的对象,包括可枚举成员、字符串、数字、布尔值等。方法也可以返回任何类型的对象。例如:

# 定义一个将数组中所有元素相加的方法
def sum(arr)
  result = 0
  arr.each { |num| result += num }
  return result
end

# 调用方法
arr = [1, 2, 3, 4, 5]
puts sum(arr) # => 15

此外,Ruby还支持在方法内定义局部变量、实例变量、类变量等。方法也可以打上许多元信息,比如可见性、异常抛出等。详情请参考Ruby官方文档。