【发布时间】:2015-01-20 05:17:22
【问题描述】:
给定一个包含三个文件fileA, fileB, fileC 的目录,我可以按照我希望它们排序的顺序创建一个数组,如下所示:
prio = [ "fileC", "fileA", "fileB" ]
#=> ["fileC", "fileA", "fileB"]
Dir.glob("*").sort_by { |i| [prio.index(i), i] }
#=> ["fileC", "fileA", "fileB"]
但是,我尝试按字母顺序对目录中的其他任何内容进行排序在 prio 数组中的那些,但是只要我添加第四个文件,我就会得到:
Dir.glob("*").sort_by { |i| [prio.index(i), i] }
ArgumentError: comparison of Array with Array failed
from (irb):3:in `sort_by'
from (irb):3
from :0
我曾尝试使用if prio.include?(i) 作为块内的条件,但后来我得到:
TypeError: can't convert nil into Array from (irb):4:in `'
我正在使用 ruby-1.8.7。有什么建议吗?
【问题讨论】:
标签: ruby