集合中是否允许使用负整数?

时间:2019-10-06 03:46:40

标签: pascal freepascal

我知道集合在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,则可以正常编译。

1 个答案:

答案 0 :(得分:3)

Delphi documentation(通常是FP镜像):

  

集合类型的范围是特定序数类型的幂集,称为基本类型;也就是说,集合类型的可能值是基本类型的所有子集,包括空集合。基本类型最多可以包含256个值,并且其序数必须在0到255之间。

FreePascal docs说的是同样的话(不太清楚,更难找到):

  

SetType的每个元素都必须为TargetType类型。 TargetType可以是介于0到255之间的任何序数类型。