Ruby ruby 元编程 34 页 匿名类 神秘地方,求解

anleb · 2012年07月02日 · 最后由 congteng 回复于 2012年07月02日 · 2711 次阅读

在 ruby 元编程 这本书上,34 页,bill 给读者留了悬念,今天不解开来,睡不着

module M1
def ask
end
end

module M2
def ask
end
end

class A
inculde M1
inculde M2
end

我们知道 A 的祖先类是 [A,M2,M1,Object,kernal]

不讨论方法调用了,书上说 这个时候 其实有 3 个 ask 方法,请问除了 M1 M2 的 ask,还有哪个地方有 ask 方法啊,我猜测是匿名类,可是怎么查看呢?

A 啊 实际 A 上只有 M2 的 ask 方法

#1 楼 @hooopo 是对滴,我知道,因为向上查找方法会到 M2 就停了,问题是 第三个方法在哪

#2 楼 @Anleb 在 kernel 中

#3 楼 @googya 能具体点吗

#4 楼 你说的是 print 方法吧?我看书里是说的有 3 个 print 不是 ask @Anleb Kernel.methods.grep /print/ => [:sprintf, :printf, :print]

#5 楼 @congteng 明白了,我被题目弄混了,3Q

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