mam ten wiersz:zestaw WideChar: Zestawy mogą mieć co najwyżej 256 elementów
const
MY_SET: set of WideChar = [WideChar('A')..WideChar('Z')];
Powyższe nie kompilacji, z powodu błędu:
[Error] Sets may have at most 256 elements
Ale ta linia ma skompilować ok:
var WS: WideString;
if WS[1] in [WideChar('A')..WideChar('Z')] then...
I zestawia również oK:
const
MY_SET = [WideChar('A')..WideChar('Z'), WideChar('a')..WideChar('z')];
...
if WS[1] in MY_SET then...
Dlaczego tak jest?
EDIT: Moje pytanie brzmi dlaczegoif WS[1] in [WideChar('A')..WideChar('Z')]
kompiluje? i dlaczego kompiluje się MY_SET = [WideChar('A')..WideChar('Z'), WideChar('a')..WideChar('z')];
? czy nie muszą również stosować się do zasad set
?
Drugi kod ma tylko 26 elementów. Znacznie prostsze w użyciu> = i <= tutaj. Zwróć uwagę, że twój kod nie uznaje znaków nieangielskich. –
@ David: Czy pierwszy kod nie zawiera również 26 elementów? "Zauważ, że twój kod nie uznaje znaków nieangielskich." Muszę sprawdzić poprawne znaki ISO. ważne są tylko angielskie znaki. – zig
Tak długo, jak same elementy są poniżej 256, drugie wyrażenie jest poprawne. Pierwsze wyrażenie deklaruje zbiór większy niż 256 (zestaw WideChar). –