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 の概要については、こちらを参照してください。