我知道集合在FPC中的元素不能超过255个,但是,允许使用负整数吗?
我偶然发现了这一点,还没有在线找到与其相关的任何东西。
PROGRAM test;
TYPE rg = -10..0;
negatives = set of rg;
我收到此编译错误。
test.pas(3,25) Error: illegal type declaration of set elements
我怀疑此错误是由负整数引起的,因为例如,如果我将范围定义为0..5
,则可以正常编译。
答案 0 :(得分:3)
从Delphi documentation(通常是FP镜像):
集合类型的范围是特定序数类型的幂集,称为基本类型;也就是说,集合类型的可能值是基本类型的所有子集,包括空集合。基本类型最多可以包含256个值,并且其序数必须在0到255之间。
FreePascal docs说的是同样的话(不太清楚,更难找到):
SetType的每个元素都必须为TargetType类型。 TargetType可以是介于0到255之间的任何序数类型。