我以前从未在Perl程序中见过DOES
,但在通用的docs中已经存在。
我不完全了解DOES
和ISA
之间的区别是什么。该规范涉及角色,可能通过聚合,委派和模拟来完成。我在Perl中了解的唯一一种类关系是通过@ISA数组(或通过使用parent
或base
)进行继承,我认为角色仅适用于Moose等。该文档还说,大多数时候DOES
和ISA
将是同一件事。
您可以举一个DOES
和ISA
返回不同值的示例吗?这两种方法的实际区别是什么?
最佳答案
使用角色时。 UNIVERSAL::DOES
的行为与UNIVERSAL::isa
相同,但是Moose,Mouse和Moo都在其对象类上提供DOES
方法,这些方法对于使用给定角色的类返回true。