我是红宝石初学者,对此代码感到非常沮丧:
unless ((f[-4..-5] == '.png') || (f[-4..-5] == '.jpg'))
不知何故,红宝石无法识别第二次比较!怎么了?
答案 0 :(得分:7)
我认为您应该使用f[-4..-1]
代替f[-4..-5]
。
或者您可以使用正则表达式:
unless f =~ /\.(png|jpg)$/
或使用String#end_with?:
unless f.end_with?('.png', '.jpg')
答案 1 :(得分:4)
f[-4..-5]
将是一个空字符串,永远不会匹配'.png'
。因此,你的分离的第二个任期永远不会被评估。
如果您要通过文件扩展名进行调节,则可以执行以下操作:
case File.extname(f)
when ".png", ".jpg"
else
...
end
答案 2 :(得分:0)
如何:
ext_nm = File.extname(f)
unless [".png", ".jpg"].include? ext_nm