Ruby 字符串 end_with?大批

Ric*_*h_F -1 ruby arrays string

我正在寻找一种方法来限定文件名是否以数组内的后缀结尾。

\n\n
filetypes = %w(.flac .wv)\nDir.open(Dir.pwd).each do |filename|\n  q = "." + filename.split(\'.\').last.to_s\n  pp filename if filetypes.include?(q)\nend\n
Run Code Online (Sandbox Code Playgroud)\n\n

我认为必须有某种内置迭代器来遍历限定符数组。我在这里错过了什么吗?

\n\n
filetypes = %w(.flac .wv)\nDir.open(Dir.pwd).each do |filename|\n  pp filename if filename.end_with?(filetypes)\nend\n
Run Code Online (Sandbox Code Playgroud)\n\n

这是行不通的。文档是这样说的:

\n\n

end_with?([suffixes]+) \xe2\x86\x92 true or false

\n\n

所以它表明可以遍历数组,但它对我不起作用。我怎样才能将数组传递给end_with?

\n

Sco*_*ach 5

您只是缺少 splat 运算符 (*):

filetypes = %w(.flac .wv)

Dir.open(Dir.pwd).each do |filename|
  pp(filename) if filename.end_with?(*filetypes)
end
Run Code Online (Sandbox Code Playgroud)