Ruby使用命名空间/模块

例如:

require 'net/http'
uri = URI('http://example.com/some_path?query=string')

Net::HTTP.start(uri.host, uri.port) do |http|
  request = Net::HTTP::Get.new uri

  response = http.request request # Net::HTTPResponse object
end

什么是正确/ rubist的方式来摆脱Net :: HTTP?即HTTP :: Get.new()或Get.new()

如果你想缩短这些,你可以导入这个命名空间:

Net::HTTP.start(...)

include Net
# HTTP.start(...)

当你进口积极的时候要小心,因为如果你被带走,可能会导致你的班级冲突.

另一种方法是创建别名:

HTTP = Net::HTTP
Get = Net::HTTP::Get

“正确”的方式是拼出来,不要太过分.一个典型的Ruby程序会将这种低级别的行为埋在一个抽象层下面,所以很少是一个大问题.

翻译自:https://stackoverflow.com/questions/17299779/ruby-using-namespace-module

转载注明原文:Ruby使用命名空间/模块