📜  红宝石 |可枚举的 min()函数(1)

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

红宝石 | 可枚举的 min() 函数

在 Ruby 的 Enumerable 模块中,min() 函数用于返回一个可枚举对象中的最小元素。

语法
enumerable.min { |a, b| block }
enumerable.min(n) { |a, b| block }
enumerable.min_by { |obj| block }
enumerable.min_by(n) { |obj| block }
参数
  • enumerable:要进行比较的可枚举对象。
  • block:用于比较元素的块,必须返回 -1、0 或 1。
  • n:表示要返回的最小元素的数量。
返回值

min() 方法返回可枚举对象中的最小元素。而 min_by() 方法则是根据块的逻辑返回最小元素。

示例
arr = [1, 5, 2, 7, 3]
puts arr.min # 输出:1
puts arr.min(2) # 输出:1 2
puts arr.min_by { |x| x.to_s } # 输出:1
puts arr.min_by(2) { |x| x.to_s } # 输出:1 2

在上面的示例中,我们可以看到 min() 方法返回了数组 arr 中的最小值,而 min_by() 方法则使用了块将整数转换为字符串再进行比较,返回了最小的元素。同时,我们还可以使用 min() 方法中的参数 n 来返回最小的前 n 个元素。

总结

min() 函数可用于任何可枚举对象(数组、哈希等),返回最小值。而 min_by() 方法则根据块的逻辑返回最小的元素。这两个方法经常使用于编写排序算法等程序中,是 Ruby 开发人员必须掌握的基本方法。