我知道集合在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..5
从 Delphi documentation ,它通常是fp镜像:
集合类型的范围是特定序数类型的幂集,称为基类型;即,集合类型的可能值是基类型的所有子集,包括空集合。基类型的可能值不能超过256个,其序号必须介于0和255之间。
这个 FreePascal docs 说同样的话(不是很清楚,而且更难找到):
setType的每个元素都必须是targetType类型。targetType可以是范围在0到255之间的任何序号类型。