0
如何訂購兩個不同的類?所以說有Class1和Class2都具有相同類型的字段,我將如何做(Class1 + Class2).asc(:field)?訂購兩個不同的類
如何訂購兩個不同的類?所以說有Class1和Class2都具有相同類型的字段,我將如何做(Class1 + Class2).asc(:field)?訂購兩個不同的類
你可以做到這一點的方式,例如
class A
attr_accessor :f1
end
class B
attr_accessor :f1
end
a=A.new
a.f1="a"
b=B.new
b.f1="b"
arr = []
arr << b << a
=> [#<B:0x6153e0c0 @f1="b">, #<A:0x55a517bd @f1="a">]
,你可以按
arr.sort_by(&:f1)
=> [#<A:0x55a517bd @f1="a">, #<B:0x6153e0c0 @f1="b">]
是
arr.sort_by {|x| x.f1}
的縮寫形式,甚至可以用某種方法指定asc,desc
>> arr.sort{|x,y| x.f1 <=> y.f1}
=> [#<A:0x55a517bd @f1="a">, #<B:0x6153e0c0 @f1="b">]
>> arr.sort{|x,y| y.f1 <=> x.f1}
=> [#<B:0x6153e0c0 @f1="b">, #<A:0x55a517bd @f1="a">]
希望這有助於