所以我是 Eiffel 编程的新手,我正在尝试学习在ensure
a 的块中编写后置条件feature
,特别是编写循环。
所以我尝试了这个:
feature
-- sets the value of a particular in an array to x
foo (a: ARRAY[INTEGER]; target_val, x: INTEGER)
require
valid_target: 1 <= target_val and target_val <= a.count
do
a[target_val] := x
ensure
across
1 |..| a.count as i
all
across
1 |..| a.count as j
all
i.item /= j.item implies a[i.item] /= a[j.item]
end
end
end
但由于某种原因,我得到了一个未知标识符i
and j
。有谁知道导致此错误的原因以及我该如何解决?across ... as ... all ... end
另外,在ensure
块中使用还有另一种选择吗?提前非常感谢!