我可以很容易地声明一个枚举和一组 但有时我只想使用枚举的一部分,并且我希望编译器检查子枚举及其子集中的值是否保持在边界内。
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
我是否可以声明TWeekday
和TWeekdays
作为TDay的衍生产品,如果是,怎么做?
有趣的是,谷歌在这个问题上没有产生任何东西(对我而言),只是普通的老套装。
答案 0 :(得分:10)
您的子范围语法错误了。删除括号()
,它将起作用。
type
TDay = (mon, tue, wen, thu, fri, sat, sun);
TWeekday = mon..fri; // A subrange of TDay
TDays = set of TDay;
TWeekdays = set of TWeekDay;
有关Subrange Types和Sets的更多信息。