将类型声明为集合的子集

4

我可以轻松地声明枚举和集合。
但有时我只想处理枚举的一部分,并希望编译器为我检查子枚举和其子集中的值是否在范围内。

type
  TDay = (mon, tue, wen, thu, fri, sat, sun);
  TWeekday = (mon..fri); //not allowed;

  TDays = set of TDay;
  TWeekdays = set of TDay[mon..fri]; //not allowed

如果可以,我该如何将TWeekdayTWeekdays声明为TDay的派生类?

有趣的是,谷歌对这个问题没有任何结果(对我来说),只有普通的旧集合。


TWeekday = 星期一..星期五 TWeekdays = TWeekday 的集合 - TLama
是的,这就对了。我知道这是可能的,但是记不住正确的语法。 - Johan
1个回答

12

你的子范围语法有误。去掉括号()就可以正常工作。

type
  TDay = (mon, tue, wen, thu, fri, sat, sun);
  TWeekday = mon..fri; // A subrange of TDay

  TDays = set of TDay;
  TWeekdays = set of TWeekDay; 

了解更多关于子范围类型集合的信息。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接