如何从Ruby模块中仅导入几个函数?

前端之家收集整理的这篇文章主要介绍了如何从Ruby模块中仅导入几个函数?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
假设我有一个带有方法的模块:function1,function2,function3.我想导入function1和function2但不导入function3.有没有办法在ruby中做到这一点?

解决方法

不确定是否有一种干净的方法添加所需的方法,但是您可以使用undef_method删除不需要的方法.
module Foo
  def function1
  end

  def function2
  end

  def function3
  end
end

module MiniFoo
  include Foo
  not_wanted_methods = Foo.instance_methods - %w(function1 function2)
  not_wanted_methods.each {|m| undef_method m}
end

class Whatever
  include MiniFoo
end
原文链接:https://www.f2er.com/ruby/268780.html

猜你在找的Ruby相关文章