在模块中混合 class 和实例变量

Mix class and instance variables in module

来自 github issue #4820 by @TPei.

嘿,我只是想知道是否可以通过使用 self.included(base) 挂钩或其他方式在模块中混合 class 和实例变量,如 ruby相似的。是否有支持此功能的结构或未来有任何计划?

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

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

这会导致 MyFirstModule 中的方法成为 MySecondModule 中的 class 方法,从而使我能够在用户包含 MySecondModule

时添加 class 和实例方法

回答者@straight-shoota

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

macro included
  extend MyFirstModule
end