【问题标题】:storing two classes in a data stucture at once in EIFFEL在 EIFFEL 中一次将两个类存储在一个数据结构中
【发布时间】:2016-02-25 22:18:48
【问题描述】:

我正在制作一个诊所,我需要制作一个同时存储两种药物的对象。交互对象表示 MEDICATION_1 正在与 MEDICATION_2 交互

但是下面的代码是不正确的,因为它不符合泛型参数

错误:VICG:实际泛型参数不符合约束。

代码:

interaction: HASH_TABLE[MEDICATION, MEDICATION] 

【问题讨论】:

    标签: eiffel


    【解决方案1】:

    HASH_TABLE 允许将一种类型的对象与另一种(或相同)类型的对象相关联。 HASH_TABLE 的第一个参数是一个值,第二个参数是一个键。因此,对于同一个键,最多可以保留一个值。如果这符合您的需要,则密钥类型必须为 HASHABLE。这种类型定义了一个函数hash_code,它计算一个对象的整数值。所有基本类型和STRING 都是HASHABLE,因此您可以依靠现有的实现来计算hash_codeMEDICATION 对象。例如,如果一种药物有一个唯一的名称,那么定义如下是有意义的:

    class MEDICATION inherit HASHABLE ... feature ...
       name: STRING
       ...
       hash_code: INTEGER
          do
             Result := name.hash_code
          end
    end
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-01-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-25
      • 2021-08-29
      • 2015-11-28
      相关资源
      最近更新 更多