【发布时间】:2012-08-26 17:48:19
【问题描述】:
作为一个 Ada 类型系统的学习练习,我试图制作 3 种类型(或者更确切地说,一种类型和 2 个子类型):
-
Month_Type,所有月份的枚举 -
Short_Month_Type,Month_Type子类型,只有 30 天的月份 -
February_Month_Type,只有二月的子类型
似乎子类型必须使用range 机制,对吗? (还有其他类型的子类型吗?)为了让它在连续范围内工作,我必须按以下顺序排列 Month_Type 枚举:
type Month_Type is (February, April, June, September, November, January, March, May, July, August, October, December);
显然这不是几个月的自然顺序,我可以看到人们/我试图做Month_Type'First 或期待一月份的事情。
所以,这个愚蠢的例子有两个一般性问题:
- 我可以有一个子类型来指定其基本类型的特定组件而不是范围吗?
- 我能否以某种方式隐藏我放置月份的顺序的实施细节(例如,让“First”不可见)?
谢谢!
【问题讨论】:
标签: types visibility ada