我知道如何设置类方法,但如何动态设置实例方法?

发布于 2024-09-16 01:32:09 字数 429 浏览 8 评论 0原文

  • 我之前问过关于类方法的问题,但我真的想了解如何为实例方法执行此操作。谢谢! =)

下面的代码为给定数组设置类方法:

class Testing

  V4_RELATIONSHIP_TYPES=[1=>2,3=>4]

  V4_RELATIONSHIP_TYPES.keys.each do |key|
    self.class.send(:define_method, "get_#{key}_type".downcase) do
      return GuidInfo.get_or_new(PARAMS, V4_RELATIONSHIP_TYPES[key])
    end
  end
end

#so i can call Testing.get_1_key()

问题是:如何为实例获取相同的方法集?

  • I asked a previous question on class methods, but I really want to understand how to do this for instance methods as well. Thanks! =)

The code below sets class methods for a given array:

class Testing

  V4_RELATIONSHIP_TYPES=[1=>2,3=>4]

  V4_RELATIONSHIP_TYPES.keys.each do |key|
    self.class.send(:define_method, "get_#{key}_type".downcase) do
      return GuidInfo.get_or_new(PARAMS, V4_RELATIONSHIP_TYPES[key])
    end
  end
end

#so i can call Testing.get_1_key()

The question is: how can I get the same set of methods for the instance?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

家住魔仙堡 2024-09-23 01:32:10
self.send(:method, value)
self.send(:method, value)
五里雾 2024-09-23 01:32:10
class Testing
  V4_RELATIONSHIP_TYPES = { 1 => 2, 3 => 4 }

  V4_RELATIONSHIP_TYPES.each do |key, value|
    define_method("get_#{key}_type".downcase) do
      return GuidInfo.get_or_new(PARAMS, value)
    end
  end
end

# Now you can call Testing.new.get_1_key
class Testing
  V4_RELATIONSHIP_TYPES = { 1 => 2, 3 => 4 }

  V4_RELATIONSHIP_TYPES.each do |key, value|
    define_method("get_#{key}_type".downcase) do
      return GuidInfo.get_or_new(PARAMS, value)
    end
  end
end

# Now you can call Testing.new.get_1_key
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文