Types 在Ada中不指定范围而创建子类型有什么意义?

Types 在Ada中不指定范围而创建子类型有什么意义?,types,ada,Types,Ada,在Ada中,我经常看到这样的情况: type Number is new Integer; Type Pounds is new Integer; Type Euros is new Integer; Type Dollars is new Integer; 这有什么意义?你就不能对一个整数感到满意吗? 我也看到过这样的代码: type Small_Number is range 1..5; 这对我来说很有意义;我明白为什么这会有用。但是为什么您会选择使用前一个示例呢?关键是数字是一

在Ada中,我经常看到这样的情况:

type Number is new Integer;
Type Pounds  is new Integer;
Type Euros   is new Integer;
Type Dollars is new Integer;
这有什么意义?你就不能对一个
整数感到满意吗?
我也看到过这样的代码:

type Small_Number is range 1..5;

这对我来说很有意义;我明白为什么这会有用。但是为什么您会选择使用前一个示例呢?

关键是
数字
是一种新类型,与
整数
截然不同

这意味着对参数等进行更多的控制,因为在需要
数字的情况下,不能使用
整数
;这有助于封装


很有可能,你希望保持这种控制水平,并可能为将来做计划,最终你可能会发现
Number
Integer
完全不同。关键是
Number
是一种新类型,与
Integer
截然不同

这意味着对参数等进行更多的控制,因为在需要
数字的情况下,不能使用
整数
;这有助于封装


很有可能,您希望保持这种级别的控制,并可能为将来做计划,最终可能会发现
Number
Integer
完全不同。更常见的情况是,我看到这样的代码:

type Number is new Integer;
Type Pounds  is new Integer;
Type Euros   is new Integer;
Type Dollars is new Integer;
这意味着你不会意外地把英镑从欧元变成美元

如果要在两者之间转换,则需要执行显式转换,或编写转换例程,这两个例程都将考虑适用的汇率


(现在我进一步思考,对于这个例子来说,Float会比Integer更好!)

我经常看到这样的代码:

type Number is new Integer;
Type Pounds  is new Integer;
Type Euros   is new Integer;
Type Dollars is new Integer;
这意味着你不会意外地把英镑从欧元变成美元

如果要在两者之间转换,则需要执行显式转换,或编写转换例程,这两个例程都将考虑适用的汇率

(现在我进一步考虑,在这个例子中,Float比Integer更好!)

我同意这一点

type Number is new Integer;
(这不是类型的“重命名”)看起来很糟糕,但可能有一个很好的理由。例如:

  • 您希望
    Number
    是一个不同的类型,但范围与
    Integer
    相同
  • 您希望
    Number
    将数组类型的范围与
    Integer
    派生索引相匹配
    • 我同意

      type Number is new Integer;
      
      (这不是类型的“重命名”)看起来很糟糕,但可能有一个很好的理由。例如:

      • 您希望
        Number
        是一个不同的类型,但范围与
        Integer
        相同
      • 您希望
        Number
        将数组类型的范围与
        Integer
        派生索引相匹配

      只是为了明确术语:Ada有一个
      重命名
      关键字,用于重命名内容(尽管它不能用于类型;建议使用
      子类型
      )。这给某些东西起了一个新名字,但并没有创建一个新的变量或类型。您在这里描述的是一个派生类型,它与重命名完全不同。只是为了清楚术语:Ada有一个
      rename
      关键字,用于重命名内容(尽管它不能用于类型;建议使用
      子类型
      )。这给某些东西起了一个新名字,但并没有创建一个新的变量或类型。您在这里描述的是一种派生类型,它与重命名完全不同。浮点数中的二进制数表示形式经常与为十进制数定义的会计规则相冲突。使用二进制浮点数偶尔会使仙(dis)出现在稀薄的空气中。这里的选择类型是固定十进制数,例如4位十进制数字。浮点数中的二进制数表示形式通常与为十进制数定义的会计规则相冲突。使用二进制浮点数偶尔会使仙(dis)出现在稀薄的空气中。这里的选择类型是固定小数,例如4位小数。