我需要在Ruby中對混合數組進行排序。它有Fixnum
S和String
小號如何使用混合字符串和Fixnums對Ruby數組進行排序
ar = [1, "cool", 3, "story", 4, "bro"]
我想Fixnum
s到優先於串並不在乎什麼命令字符串英寸
ar = [1,3,4,"cool","story","bro"]
我已經嘗試寫出一種方法class Array
Class Array
def mixed_sort
self.sort do |a,b|
if a.class == Fixnum and b.class != a.class
-1
else
a <=> b
end
end
end
end
我想我可能只是通過一個塊到Array#sort
方法。但是這種方法仍然會引發錯誤擊中塊
[1] pry(main)> [1, "11", '12', 3, "cool"].mixed_sort
ArgumentError: comparison of String with 3 failed
from /config/initializers/extensions/array.rb:3:in `sort'