Jer*_*fin 8

首先,术语:它是"Ada",而不是"ADA" - 它以"Ada Lovelace"命名; 它不是首字母缩略词.

子类型与其基类型兼容,因此您可以将基类型的操作数与基类型的操作数混合.例如:

subtype Week_Days is Integer range 1..7;
Run Code Online (Sandbox Code Playgroud)

由于这是一个子类型,您可以(例如)添加1到工作日以获取下一个工作日.

派生类型是完全独立的类型,具有与其基本类型相同的特征.您不能将派生类型的操作数与基类型的操作数混合.例如,如果您使用:

type Week_Day is new Integer range 1..7;
Run Code Online (Sandbox Code Playgroud)

那么你将无法在工作日添加一个整数来获得另一个工作日.要对派生类型进行操作,通常您自己定义这些操作(例如,创建包).同时,派生类型会"继承"其基类型的所有操作(即使是一些可能没有意义的操作),因此您仍然可以添加.

  • 我厌倦了解释ADA的事情,我现在只是定期编辑任何错误的问题或答案并修复它.如果有人想知道原因,他们可以查一查. (2认同)