虽然这是一个案例平等陈述,但我无法弄清楚它在以下示例代码中的含义:
def initialize connection, options = {}
@proxy = @uri = nil
@connection = connection
unless false === options[:url]
url = options[:url] ? options[:url].dup : 'http://127.0.0.1:8983/solr/'
url << "/" unless url[-1] == ?/
@uri = RSolr::Uri.create url
if options[:proxy]
proxy_url = options[:proxy].dup
proxy_url << "/" unless proxy_url.nil? or proxy_url[-1] == ?/
@proxy = RSolr::Uri.create proxy_url if proxy_url
end
end
@options = options
end
答案 0 :(得分:1)
我认为这里使用===
运算符是错误的。这里更惯用的是
if options[:url] != false
# code
end
因为false === options[:url]
只适用于options[:url] == false
答案 1 :(得分:1)
我相信#===
意味着#==
的含义(在false
和true
的情况下,通常不是这样),所以这只是编写得不好的代码。
false === false # => true
false === nil # => false
false === true # => false