我有这样一行:集WideChar的:设置最多可以有256个元素
const
MY_SET: set of WideChar = [WideChar('A')..WideChar('Z')];
以上无法编译,错误:
[Error] Sets may have at most 256 elements
,但此行不会编译OK:
var WS: WideString;
if WS[1] in [WideChar('A')..WideChar('Z')] then...
,这也编译OK:
const
MY_SET = [WideChar('A')..WideChar('Z'), WideChar('a')..WideChar('z')];
...
if WS[1] in MY_SET then...
这是为什么?
编辑:我的问题是,为什么if WS[1] in [WideChar('A')..WideChar('Z')]
编译?为什么MY_SET = [WideChar('A')..WideChar('Z'), WideChar('a')..WideChar('z')];
编译?他们是不是也需要适用于set
规则?
第二个代码只有26个元素。使用> =和<=在这里更简单。请注意,您的代码不会承认非英文字符。 –
@大卫,第一个代码不是也有26个元素? “请注意你的代码不承认非英文字符。”我需要检查有效的ISO字符。只有英文字符才有效。 – zig
只要元素本身低于256第二个表达式是有效的。第一个表达式声明一个大于256的集合(WideChar集合)。 –