gpt4 book ai didi

perl - Perl 多态性如何工作?

转载 作者:行者123 更新时间:2023-12-04 09:01:33 24 4
gpt4 key购买 nike

我无法解释多态在 Perl 中是如何工作的。我明白多态是什么意思,但我想弄清楚它在 perl 内部是如何工作的。有人可以指点我一些解释它的文档。我所做的所有 google 搜索都为我提供了 perl 中多态性的示例,但没有提供 perl 如何使其工作的示例。

最佳答案

method is invoked在对象或类上,Perl 会查看该方法是否由类本身直接提供。

因为 classes are simply Perl packages ,这只是寻找子程序 &Class::method 是否存在的问题.

如果没有找到这样的子程序,Perl 会检查 @ISA同一包中的数组(即 @Class::ISA ),其中包含该类的基类列表,并对出现在其中的每个包/类进行相同的检查。

这些类中的每一个依次也可能有一个 @ISA数组,所以搜索是递归的。

最后,如果这个方法在任何地方都找不到,Perl 会在一个特殊的包 UNIVERSAL 中查找。对于子程序 &UNIVERSAL::method .

此时的失败继续调用 AUTOLOAD系统,但这确实超出了多态性的原则。

在任何地方都找不到合适的匹配方法会引发异常。

关于perl - Perl 多态性如何工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11019979/

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