首页 > 解决方案 > 使用类作为方法

问题描述

我喜欢你如何使用 URI 类的名称来实例化 URI 对象:

uri = URI('https://www.example.com')

非常整洁和简单。你是怎样做的?

例如,假设我有一个模块:

module MyModule
   def self.mymethod()
   end
end

MyModule.mymethod 是模块中的唯一方法。每次我想要那种方法时,我都必须输入,这很烦人:

MyModule.mymethod()

它有效,但似乎多余......这是模块中唯一的方法。有没有办法只需要调用 MyModule?

MyModule.mymethod()

标签: ruby

解决方案


如果您仔细查看源代码,您会发现

module Kernel

  #
  # Returns +uri+ converted to an URI object.
  #
  def URI(uri)
    # ...
  end
  module_function :URI
end

也许让你失望,但如果你这样做URI('https://www.example.com')了,你只需调用从内核继承的方法。


推荐阅读