我最近在调试会话中注意到Dir.glob
(又名Dir[]
)的行为取决于操作系统。具体来说,文件返回的顺序是不同的。
当您知道该代码将在各种操作系统上使用时,建议在Ruby中使用Dir.glob
的推荐方法是什么?
示例差异: 我在Linux和Windows中克隆了项目DeckSchrubber
Windows:
irb(main):003:0> puts Dir['./*']
./CHANGELOG.md
./LICENSE
./main.go
./README.md
./types.go
./util
=> nil
Linux:
irb(main):011:0> puts Dir['./*']
./main.go
./LICENSE
./util
./types.go
./README.md
./CHANGELOG.md
=> nil
我再一次要求解决方案和习惯用法,以确保输出规范。
答案 0 :(得分:0)
通常,FS库在Mac和Linux上的行为方式不同。我不认为Windows是Ruby的平台。
因此,根据我的经验,仅添加一个条件运算符就足够了,该运算符可以检查当前平台名称,并以所需的方式对结果进行排序。据我所记得,区别在于返回文件的顺序。