空数组([]
)被处理为" true"在布尔上下文中。是否有任何智能方法将空数组处理为false?
我想制作一个简单的代码,列出当前目录中的C文件,或者#34; Main.c"如果目录中没有C文件。我可以写下面的内容,但是有更聪明的方法吗?
Dir.glob("*.c")!=[] ? Dir.glob("*.c").join(" ") : "Main.c"
答案 0 :(得分:2)
我会这样写,避免重复多次调用Dir.glob并使用Array#empty?
的代码:
files = Dir.glob("*.c")
files.empty? ? 'Main.c' : files.join(' ')
实际上,这似乎更加一致:
files = Dir.glob("*.c")
files = ['Main.c'] if files.empty?
files.join(' ')
答案 1 :(得分:-1)
如果您可以假设结果列表中有/应该始终是“Main.c”,请将其推入然后单击列表以消除重复项(如果有)。
[*Dir.glob("*.c"), "Main.c"].uniq.join(" ")