gpt4 book ai didi

ruby - 如何知道类中包含了哪些模块

转载 作者:数据小太阳 更新时间:2023-10-29 08:50:27 24 4
gpt4 key购买 nike

我想查找特定类中包含哪些模块,不包括其祖先。例如:

module M; end
module N; end

class A; include M; end
class B < A; include N; end

p B.included_modules

#=> [N, M, Kernel]
# I want only N

我无法使用 B.included_modules[0],因为我不知道 B 包含多少个模块。

最佳答案

如果你知道A是B的父类(super class)那么

p B.included_modules - A.included_modules 应该给你你正在寻找的东西

p B.included_modules - B.superclass.included_modules

module M; end
module N; end
module O; end

class A; include M; end
class B < A; include N; include O; end

p B.included_modules - A.included_modules
#=> [O, N]

关于ruby - 如何知道类中包含了哪些模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14318131/

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