OCLの実装を持つ Delphi には Bold を使用します。OCL は、リストのフィルタリングなどに適しています。しかし、リンクされたリストをトラバースするための適切で一般的な方法は見つかりませんでした。
class があるとし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 の概要については、こちらを参照してください。