将类型声明为集合的子集
Declaring a type as a subset of a set
我可以很容易地声明一个枚举和一个集合。
但有时我只想使用枚举的一部分,我希望编译器为我检查子枚举及其子集中的值是否在范围内。
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 的派生词吗?如果可以,如何声明?
足够有趣 google 在这个问题上(对我而言)没有产生任何结果,只是普通的旧集。
您对子范围的语法有误。去掉括号 ()
即可。
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 and Sets。
我可以很容易地声明一个枚举和一个集合。
但有时我只想使用枚举的一部分,我希望编译器为我检查子枚举及其子集中的值是否在范围内。
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 的派生词吗?如果可以,如何声明?
足够有趣 google 在这个问题上(对我而言)没有产生任何结果,只是普通的旧集。
您对子范围的语法有误。去掉括号 ()
即可。
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 and Sets。