【问题标题】:Mix class and instance variables in module在模块中混合类和实例变量
【发布时间】:2017-08-11 01:47:32
【问题描述】:

来自github issue #4820@TPei

嘿,我只是想知道是否可以通过使用 self.included(base) 钩子或类似的东西在 ruby​​ 等模块中混合类和实例变量。是否有任何支持这一点的结构或未来有什么计划?

澄清: 在 ruby​​ 中可以定义一个模块(MyFirstModule),然后在另一个模块(MySecondModule)中做

def self.included(base)
  base.extend(MyFirstModule)
end

这会导致 MyFirstModule 中的方法成为 MySecondModule 中的类方法,从而使我能够在用户包含 MySecondModule 时添加类和实例方法

【问题讨论】:

    标签: crystal-lang


    【解决方案1】:

    @straight-shoota回答

    这可以通过包含的宏钩子来完成:reference

    macro included
      extend MyFirstModule
    end
    

    【讨论】:

      猜你喜欢
      • 2015-02-13
      • 1970-01-01
      • 2011-10-03
      • 1970-01-01
      • 2015-07-01
      • 2017-06-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多