OCL asSet 是如何工作的?

How does OCL asSet work?

根据asSet/ asBag/ asSequence/ asOrderedSet 我有一个问题。我可以在 collection 的 collection 上使用它吗?例如,我有 (Sequence(Bag(Set(A)))),我可以使用这些操作吗?如果可能的话,我将收到什么结果。或者我需要使用 flatten?

来自 OCL 2.0 文档

1) 这意味着展平操作,在您的情况下 "Sequence(Bag(Set(t))) " returns "t" 对象的序列 - Sequence(t ). 2) 如果你将使用 "asSet()" 操作,你将得到 Set(Bag(Set(t)))