['a', 'b', 'c'] 编译是不过的
['A', 'B', 'C'] 编译是不过的
['1', '2', '3'] 编译是过的
为什么?
因为我们支持的集合要小于64个元素, 就是说ord()要小于64.
这样你就会清楚了, 因为ord('a') > 90, ord('A') > 64, ord('1') < 64
这是我们编译集合的限制
可以用下面方法支持:
c: char;
原代码
if c in ['a', 'b', 'c'] then begin end;
方案1
if (c = 'a') or (c = 'b') or (c = 'c') then begin end;
方案2
if (c >= 'a') and (c <= 'c') then begin end; |