我之前从未在Perl程序中看到过DOES
,但它仍然存在于docs上。
我完全不明白DOES
和ISA
之间的区别是什么。规范说明了角色,可能通过聚合,委派和模拟来实现。我在Perl中了解的唯一类关系是通过@ISA数组继承(或使用parent
或base
),我认为角色只能用于Moose等。文档还说大多数时间DOES
和ISA
都是一样的。
您能举例说明DOES
和ISA
返回不同的值吗?这两种方法有什么实际区别?
答案 0 :(得分:5)
使用角色时。 UNIVERSAL::DOES
的行为与UNIVERSAL::isa
相同,但Moose,Mouse和Moo都在其对象类上提供DOES
方法,对于使用给定角色的类返回true。