📅  最后修改于: 2023-12-03 15:11:36.016000             🧑  作者: Mango
在 Ruby 中,数组排序()
函数用于对数组进行排序。该函数可接受一个可选的块,并根据指定的规则对数组中的元素进行排序。
以下是 数组排序()
函数的基本语法:
array.sort { |a, b| block }
其中:
array
:需要进行排序的数组。block
:可选的块,用于指定对数组中每个元素的排序规则。以下示例演示了如何使用 数组排序()
函数对 Ruby 数组进行排序:
# 定义需要排序的数组
fruits = ['banana', 'apple', 'pear', 'orange']
# 使用数组排序() 函数对数组进行排序
fruits_sorted = fruits.sort
# 输出排序后的数组
puts fruits_sorted # ["apple", "banana", "orange", "pear"]
以上示例未指定排序规则,因此将默认使用 Ruby 内置的 <=>
运算符对元素进行排序。
如果需要自定义排序规则,可以通过指定块来实现。块应该具有以下形式:
{ |a, b| block }
其中,
a
:第一个元素。b
:第二个元素。block
:块中的代码可用于指定排序规则。下面的示例演示了如何使用块对数组中的元素进行排序:
# 定义需要排序的数组 (这里使用类对象元素的属性来排序)
class Person
attr_accessor :name, :age
def initialize(name, age)
@name = name
@age = age
end
end
people = [Person.new("John", 25), Person.new("Mary", 20), Person.new("Bob", 30)]
# 使用块对数组进行排序,按照年龄从小到大排序
people_sorted = people.sort { |a, b| a.age <=> b.age }
# 输出排序后的数组
puts people_sorted.map { |person| person.name } # ["Mary", "John", "Bob"]
以上示例使用了 Person
类中的 age
属性作为排序规则,按照年龄从小到大进行排序。
数组排序()
函数不会更改原始数组,而是返回一个新的已排序的数组。
数组排序()
函数是 Ruby 中非常强大且灵活的一个函数,可以根据指定的规则对数组进行排序。通过指定块,还可以实现自定义的排序规则。在实际的开发中,经常会用到该函数。