在以下情况下,有人能告诉我更有效的url.downcase.include? "some string"
方法吗?
def source
return if url.nil?
source = nil
if url.downcase.include? 'techcrunch.com' or url.downcase.include? 'tcrn.ch'
source = 'techcrunch'
end
source
end
我刚开始使用Ruby,所以如果您有任何其他提示,我会感激他们。
非常感谢, 帕梅拉
答案 0 :(得分:1)
如果你的意思是计算效率,那么除了可能两次调用.downcase
之外,你的计算效率一样好。但实际上,在这样一个简单的案例中,你不会从任何事情中得到很大改善。
如果您正在寻找一种更短的编写实现方式,这可能会尽可能短:
def source(url)
url =~ /techcrunch\.com|tcrn\.ch/i && 'vimeo'
end
source('www.stackoverflow.com') # => nil
source('www.techcrunch.com') # => "vimeo"
答案 1 :(得分:0)
def source
return unless url
downcased_url = url.downcase
'vimeo' if %w[techcrunch.com tcrn.ch].any? { |u| downcased_url.include? u }
end