我有疑问!对象属性可以共享域和范围吗?例如,我有四个不相交的类A
,B
,C
,D
和一个对象属性'生成'。可以陈述:produces(A,B)
; produces(C,D)
。域和范围是不同的。
或者我应该说:
produces1(A,B)
produces2(C,D)
答案 0 :(得分:0)
是的,这是可能的。如果没有指定的域或范围,则使用对象属性不会导致类型推断,因此不会导致不一致。
如果您希望指定域(等效地,范围)并且您希望包含的某些类是不相交的,则您希望将域指定为这些类的 union (默认情况下为多个域)断言被视为交集)。