私は Eiffel で割り当てを行っていますが、ensure 句の実装に問題があります。変数または関数を含めるために必要な特別な構文はありますか?
これは、「put」関数の現時点での私のコードです
put(key: K; value: V)
require
key /= void
local
tmp:ITEM[K,V]
do
create tmp.make(key, value)
list.put_front (tmp)
count := count + 1
ensure
count = old count + 1 and list.has(key, value)
end
これは「has」関数のコードです
has(key:K; val:V):BOOLEAN
require
key /= void
local
flag: INTEGER
do
flag := 0
from
list.start
until
list.exhausted
loop
if list.item.getkey = key then
if list.item.getvalue = val then
flag := 1
end
end
list.forth
end
if flag = 1 then
Result := true
else
Result := false
end
ensure
--???
end
割り当ては、リンクされたリストを介してマップ広告を実装することです。'put' 関数は、項目 (キー、値) をリストに挿入します。「has」関数は、リストに (キー値) ペアが含まれているかどうかをチェックします。
どんな助けでも大歓迎です。