用于字符串值的Ruby多重OR评估

时间:2012-10-16 19:18:08

标签: ruby refactoring

我想知道在Ruby中编写以下内容的方式是否干嘛:

ext == ".xlsx" || ext == ".xls" || ext == ".ods"   

我最初的想法是以下似乎没有按预期工作:

ext == ".xlsx" || ".xls" || ".ods"   

3 个答案:

答案 0 :(得分:5)

是的,有......

['.xlsx','.xls','.ods'].include? ext

答案 1 :(得分:3)

%w(.xlsx .xls .ods).include? ext

答案 2 :(得分:1)

ext =~ /(.xlsx$)|(.xls$)|(.ods$)/

irb(main):009:0> '.xlsx' =~ /(.xlsx$)|(.xls$)|(.ods$)/
=> 0
irb(main):010:0> '.xlsa' =~ /(.xlsx$)|(.xls$)|(.ods$)/
=> nil