我是红宝石初学者,对这段代码非常沮丧:
unless ((f[-4..-5] == '.png') || (f[-4..-5] == '.jpg'))
不知何故,第二个比较不被红宝石识别!怎么了?
我是红宝石初学者,对这段代码非常沮丧:
unless ((f[-4..-5] == '.png') || (f[-4..-5] == '.jpg'))
不知何故,第二个比较不被红宝石识别!怎么了?
我认为你应该使用f[-4..-1]
而不是f[-4..-5]
.
或者您可以使用正则表达式:
unless f =~ /\.(png|jpg)$/
或使用String#end_with?:
unless f.end_with?('.png', '.jpg')
f[-4..-5]
将是一个空字符串,它永远不会匹配'.png'
. 所以你的析取的第二个术语永远不会被评估。
如果您通过文件扩展名进行调节,那么您可以这样做:
case File.extname(f)
when ".png", ".jpg"
else
...
end
下面如何:
ext_nm = File.extname(f)
unless [".png", ".jpg"].include? ext_nm