我可以很容易地声明一个枚举和一个集合。
但有时我只想使用枚举的一部分,并且我希望编译器检查我是否在子枚举及其子集中的值保持在边界内。
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 的衍生物吗?如果可以,如何声明?有趣的是,谷歌在这个问题上没有产生任何东西(对我来说),只是简单的旧集。
最佳答案
您的子范围语法错误。去掉括号 ()
它将起作用。
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 。