是否有类似于Class#的钩子,仅在Ruby类定义之后被触发?

前端之家收集整理的这篇文章主要介绍了是否有类似于Class#的钩子,仅在Ruby类定义之后被触发?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
#inherited在Foo语句之后被调用.我想要的东西只能在关闭类声明的结束语句之后运行.

这里有一些代码来说明我需要的内容

class Class
  def inherited m
    puts "In #inherited for #{m}"
  end
end

class Foo
  puts "In Foo"
end
puts "I really wanted to have #inherited tiggered here."


### Output:
# In #inherited for Foo
# In Foo
# I really wanted to have #inherited tiggered here.

有什么事情存在吗?可以创建吗我完全没有运气吗?

解决方法

你可能没有运气.但这只是一个警告,而不是一个明确的答案.

Ruby钩入类定义的开始,而不是结束,对于Class#继承的b / c ruby​​类定义没有真正的结束.他们能
随时重新开放

some talk a couple years ago about adding a const_added trigger,但还没有经历. From Matz

I’m not going to implement every possible hook. So when somebody
comes with more concrete usage,I will consider this again. It would
be const_added,not class_added.

所以这可能会处理你的情况 – 但是我不确定(它最终可能在最终实现的时候触发).

你试图用这个触发器做什么?可能还有另一种办法.

原文链接:https://www.f2er.com/ruby/274023.html

猜你在找的Ruby相关文章