我使用粗體的德爾福實施OCL。 OCL善於過濾列表等,但我還沒有找到一種遍歷鏈表的好方法。關注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簡介here.
我不明白。你想在Delphi中做到這一點? OCL如何發揮作用? – jpfollenius
@jpfollenius他問:teh codez plz ?? – EProgrammerNotFound
沒有delphi代碼,在Delphi中很平凡。 OCL與Delphi非常不同。它經常用於模式驅動的開發。德爾福的Bold實現了OCL的一個實現。 –