使用EIFFEL上的项目功能在HASH_TABLE中查找对象

时间:2016-02-08 01:13:12

标签: eiffel

我在比较HASH_TABLE

中的两个对象时遇到问题

PERSON是一个具有姓名,日期,关系状态,配偶姓名,配偶身份等属性的类。所以基本上由属性组成 代码:

list: HASH_TABLE[PERSON, INTEGER_64]

put(id1, id2: INTEGER_64)
local
   p1, p2: PERSON
do
   p1 := model.list.at(id)
      -- or 
   p1 := model.list.search(id)
   p1 := model.list.found_item -- same error as below
end

错误:分配来源与目标不兼容。

使用的功能返回“可分离的G”

我认为我应该做“如果附加”以确保项目功能返回正确的对象类型然后分配?我不确定如何施放物体。

通过调用上述功能

触发错误

我需要这些功能才能工作的原因是我可以更轻松地排序

1 个答案:

答案 0 :(得分:2)

功能返回detachable G,因为可能找不到任何元素。因此,您需要使用对象测试,例如

if
   attached model.list [id1] as p1 and then
   attached model.list [id2] as p2
then
   ... -- use p1 and p2
end