Ruby Ruby 有没有类似 PHP trait 的同名报错?

chenge · 2017年06月17日 · 最后由 zlx_star 回复于 2017年06月18日 · 1097 次阅读

同名报错,这样可以避免一些 bug。

Ruby 中 include 两个模块,如果有同名方法就很容易 bug。

应该没有...

除非你特意写个 included 的 hook 去做检查

Ruby 没有这样的设定,这正是它的灵活性所在,只要顺着继承链顺藤摸瓜,不会有什么问题

PHP 中的 trait 只是对 Ruby Mixin 拙劣的模仿,同名报错可以说是一个优点,但同时也是一个缺点,多个 trait 具有同名方法就不能 use 进同一个类使用了?😌

按照 Ruby 的查找逻辑,如果做同名检测的话,性能估计会很差吧,难以想象每个方法都需要遍历一遍继承树。

需要 登录 后方可回复, 如果你还没有账号请 注册新账号