require "uri"
u = URI.parse("https://www.google.com") #<URI::HTTPS https://www.google.com>
v = URI("https://www.google.com") #<URI::HTTPS https://www.google.com>
u == v # => true
URI.parse
很容易理解,它会在模块parse
上调用 module_function URI
。
如何在Ruby的上下文中理解URI()
?它叫什么方法?或者这是一种语法糖?
答案 0 :(得分:3)
您的问题的最佳答案是源代码。当您致电URI('http..')
def URI(uri)
if uri.is_a?(URI::Generic)
uri
elsif uri = String.try_convert(uri)
URI.parse(uri)
else
raise ArgumentError,
"bad argument (expected URI object or URI string)"
end
end
正如你可以看到的那样,这个方法允许你传递任何参数,并确保如果参数不是uri或uri的实例,程序将抛出ArgumentError
。因此,在我看来,使用URI('...')
而非URI.parse('...')
进行额外检查的良好做法。
您可以自行查看:github ruby repo mirror