Ruby if-then-else或case语句的替代方案
我正在解析字符串中的关键字,想知道除了大量if-then-else语句或使用switch语句之外,是否还有其他方法。任何方向都会有帮助Ruby if-then-else或case语句的替代方案,ruby,string,if-statement,search,Ruby,String,If Statement,Search,我正在解析字符串中的关键字,想知道除了大量if-then-else语句或使用switch语句之外,是否还有其他方法。任何方向都会有帮助 application = application.downcase if(application.include?("ssl")) return "SSL" elsif(application.include?("ssh")) return "SSH" elsif(application.include?("dce")) retu
application = application.downcase
if(application.include?("ssl"))
return "SSL"
elsif(application.include?("ssh"))
return "SSH"
elsif(application.include?("dce"))
return "DCE"
elsif(application.include?("https"))
return "HTTPS"
elsif(application.include?("http"))
return "http"
else
return "nil"
这是一种方式
def your_method(application)
application = application.downcase
%w(ssl ssh dce https).each do |p|
return p.upcase if application.include?(p)
end
application.include?("http") ? "http" : "nil"
end
这是一种方式
def your_method(application)
application = application.downcase
%w(ssl ssh dce https).each do |p|
return p.upcase if application.include?(p)
end
application.include?("http") ? "http" : "nil"
end
这是一条稍微短一点的路
%w[SSL SSH DCE HTTPS http].each do |p|
return p if application =~ /#{p}/i
end
"nil"
这可能是最短的
%w[SSL SSH DCE HTTPS http].find { |p| application =~ /#{p}/i } || "nil"
除非选择较短的变量名
app.upcase[/SSL|SSH|DCE|HTTPS/] || (app =~ /http/i ? "http" : "nil")
这是一条稍微短一点的路
%w[SSL SSH DCE HTTPS http].each do |p|
return p if application =~ /#{p}/i
end
"nil"
这可能是最短的
%w[SSL SSH DCE HTTPS http].find { |p| application =~ /#{p}/i } || "nil"
除非选择较短的变量名
app.upcase[/SSL|SSH|DCE|HTTPS/] || (app =~ /http/i ? "http" : "nil")
如果是
应用程序,您会返回什么?包括?(“https”)
?检查它是否在数组中,是否在upcase it和特殊情况下的http中。然后找出它的不同之处,并使其不必如此。如果是应用程序,您会返回什么。包括?(“https”)
?检查它是否在数组中,是否在upcase it和特殊情况下的http中。然后找出它的不同之处,让它不必如此。