如果我有一系列汽车,我可以按发动机功率对其进行排序,如下所示:
collectionOfCars -> sortedBy(car|car.power)
或者干脆
collectionOfCars -> sortedBy(power)
如何对一组数字进行排序?以下表达是否正确?
collectionOfNumbers -> sortedBy(a|a)
collectionOfNumbers -> sortedBy()
如果我有一系列汽车,我可以按发动机功率对其进行排序,如下所示:
collectionOfCars -> sortedBy(car|car.power)
或者干脆
collectionOfCars -> sortedBy(power)
如何对一组数字进行排序?以下表达是否正确?
collectionOfNumbers -> sortedBy(a|a)
collectionOfNumbers -> sortedBy()
您完全可以在 OCL 中收集整数(以及字符串和所有 OCL“原始类型”的集合),它们被称为文字集合(OCL 规范第 25 页)。{}
您可以使用例如从头开始构建它们Sequence{3,2,4,1}
。
此外,考虑这个c.ownedAttribute.name
(其中c
是一个类),您将构建一个 String 的集合(这个表达式使用隐式迭代器.
)
如果要对文字集合进行排序,可以collection->sortedBy(a|a)
按照建议进行。
Sequence{3,2,4,1}->sortedBy(a|a)
结果Sequence{1,2,3,4} : Seqence(Integer)
Bag{8,7,8,9}->sortedBy(i|i)
结果Sequence{7,8,8,9} : Sequence(Integer)
您可以在 Jordi Cabot 和 Martin Gogolla 的这篇论文“Object Constraint Language (OCL): A Definitive Guide”中找到更多示例,您可以在此处找到该论文: http ://www.db.informatik.uni-bremen.de/出版物/Cabot_2012_SFM.pdf