gpt4 book ai didi

types - Ada 中子类型的非连续范围?

转载 作者:行者123 更新时间:2023-12-02 01:15:05 26 4
gpt4 key购买 nike

完全作为 Ada 类型系统学习练习,我试图创建 3 种类型(或者更确切地说,一种类型和 2 个子类型):

  • Month_Type,所有月份的枚举
  • Short_Month_Type,仅包含 30 天月份的 Month_Type 子类型
  • 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 或期待一月的事情。

所以,这个愚蠢的例子有两个一般性问题:

  1. 我可以有一个子类型来指定其基本类型的特定组件而不是范围吗?
  2. 我可以以某种方式隐藏我放置月份的顺序的实现细节(例如,使“第一个不可见”)吗?

谢谢!

最佳答案

不,一个 enumeration subtype只承认range_constraint在这种情况下,但您可以创建任意数量的 Sets使用Ada.Containers.Ordered_Sets 。有例子herehere .

关于types - Ada 中子类型的非连续范围?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12223312/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com