我需要在 OCL 中执行 2 个可用于收集的函数:forAll 和 filter。诀窍是我只能使用iterator。
这就是我带来的:
context Collection(T)::forAll(expr) : Boolean
body : self -> iterate(t: T, acc: Boolean = true | expr(t) and acc)
context Collection(T)::filter(expr) : Collection(T)
body : self -> iterate(t: T, acc: Collection(T) = {} | if expr(t) then acc->include(t) else acc endif
请告诉我这是对还是错。