我将 Bold 用于具有OCL实现的 Delphi 。OCL 擅长过滤列表等。但是我还没有找到一个好的、通用的遍历链表的方法。
假设我有一堂课PlanMission
。它包含一个PlanMission.previous
指向自身的链接。它还有一个布尔属性isDummy
。
我想遍历一个列表,PlanMissions
直到我有一个isDummy
.
我可以
if isdummy then
self
else if previous->notEmpty and previous.isdummy then
previous
else if previous.previous->notEmpty and previous.previous.isdummy then
previous.previous
else
nil
endif
endif
endif
我真正想要的是这样的:
traverseList(previous, isDummy)
traverseList
不存在,但它应该有 2 个参数。
previous
: 要关注的链接isDummy
: 一个布尔条件,所以我知道什么时候停止
如何实现?
编辑说明 我不想要任何 Delphi 代码。我想要OCL中的代码。那些使用Bold的人知道我的意思。OCL 是一种具有查询对象、属性等的查询语言。它没有副作用,所以它是只读的。可以在此处找到 OCL 简介。