我發現一個沒有意義的案例。深層複製在工作臺系統中總是失敗
我有以下特點:
test_array_deep_copy: BOOLEAN
local
imp, old_imp: ARRAY[STRING]
do
comment("Test of a deep copy.")
create {ARRAY[STRING]} imp.make_empty
imp.force ("Alan", 1)
imp.force ("Mark", 2)
imp.force ("Tom", 3)
old_imp := imp.deep_twin
imp[2] := "Jim"
Result :=
across
1 |..| imp.count as j
all
j.item /= 2 implies imp [j.item] = old_imp [j.item]
end
check not Result end
end
既然是深拷貝,這意味着IMP地址和old_imp是不同的,以及其在這兩個兩個屬性也指不同的地址。
因此,跨越循環後的這個「結果」應該是錯誤的,因爲imp和old_imp中的地址在同一個索引處是不同的。
所以當我調試這段代碼時,它說結果跨循環完成後設置爲false。
問題是,「檢查不結果」不會使false爲真。
我不知道爲什麼。在「check not Result」語句中的「Result」之前的「not」應該使其全部檢查爲真,因此它應該在工作臺系統中表示「PASSED」,但是它失敗。
這是爲什麼?