我正在学习 Ruby,但我在整个隐式返回值方面遇到了麻烦。有人请告诉我为什么这会返回一个空向量:
3 def get_filenames(path)
4 filenames = []
5
6 if (path == ".") || (path == "..")
7 []
8 elsif File.directory? path
9 Dir.entries(path).each do |sub_path|
10 filenames += get_filenames(sub_path)
11 end
12 else #presumably it's a file
13 [File.basename(path,".*")]
14 end
15 end
它应该返回从参数路径递归搜索时找到的所有文件名(无扩展名)的数组。
假设我用“/tmp”调用函数,tmp 包含 2 个文件:“A.txt”和“Bm”,然后是一个包含 1 个文件“C.exe”的目录。我希望这个函数返回 ["A","B","C"]