gpt4 book ai didi

ruby - 包括有或没有发送的模块,有什么区别吗?

转载 作者:数据小太阳 更新时间:2023-10-29 07:31:05 25 4
gpt4 key购买 nike

SomeClass.include(SomeModule)

对比

SomeClass.send :include, SomeModule

它们之间有什么区别吗?为什么首选第二种方式? (至少我在其他人的代码中更频繁地发现它)。

最佳答案

它们几乎相同。

不同的是,如果SomeClass#include是私有(private)的,由于Object#send的性质,后者仍然可以调用它

如果 SomeClass#include 是私有(private)的,而您使用前者,它会引发错误。

所以使用后者的好处是无论可见性如何,你都可以包含一个模块。 (你是否真的相信访问私有(private)方法是“正确”的事情是另一回事。它肯定会给你巨大的力量)。

关于ruby - 包括有或没有发送的模块,有什么区别吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5640539/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com