我以前从未在Perl程序中见过DOES,但在通用的docs中已经存在。

我不完全了解DOESISA之间的区别是什么。该规范涉及角色,可能通过聚合,委派和模拟来完成。我在Perl中了解的唯一一种类关系是通过@ISA数组(或通过使用parentbase)进行继承,我认为角色仅适用于Moose等。该文档还说,大多数时候DOESISA将是同一件事。

您可以举一个DOESISA返回不同​​值的示例吗?这两种方法的实际区别是什么?

最佳答案

使用角色时。 UNIVERSAL::DOES的行为与UNIVERSAL::isa相同,但是Moose,Mouse和Moo都在其对象类上提供DOES方法,这些方法对于使用给定角色的类返回true。

10-06 07:04