Types 这是功能子类型关系的示例吗?
你可以看到一张幻灯片,上面写着 : 假设您有两种函数类型:Types 这是功能子类型关系的示例吗?,types,covariance,typing,subtyping,generic-variance,Types,Covariance,Typing,Subtyping,Generic Variance,你可以看到一张幻灯片,上面写着 : 假设您有两种函数类型: type A = IntSet => NonEmpty type B = NonEmtpy => IntSet 根据Liskov替换原则,以下哪项是正确的 A我认为它暗示了(可能在上一课中提到过?)非空是IntSet的一个子类型。根据奥德斯基说话的方式,听起来像是NonEmpty是IntSets的子集,这些子集不是空的。因此A接受的参数值比B多,返回的值子集比B的值子集窄,这是一个具有附加属性的子集。这是有意义的。这是一
type A = IntSet => NonEmpty
type B = NonEmtpy => IntSet
根据Liskov替换原则,以下哪项是正确的
A我认为它暗示了(可能在上一课中提到过?)非空
是
的一个子类型。根据奥德斯基说话的方式,听起来像是IntSet
是NonEmpty
s的子集,这些子集不是空的。因此IntSet
接受的参数值比A
多,返回的值子集比B
的值子集窄,这是一个具有附加属性的子集。这是有意义的。这是一个多么奇怪的例子,如果这就是他的意思,那么用B
和NonEmptyIntSet
来表示EmptyIntSet
(我想)会更清楚,而不是孤立地表示。IntSet