Zauważyłem ten blok kodu dzisiaj i zastanawiałem się, czy tego typu operacje są gdzieś udokumentowane i dlaczego zostało to zrobione w ten sposób (wydajność itp.).Czy operator mnożenia jest udokumentowany dla zestawów?
var
Shift: TShiftState
begin
if [ssShift, ssCtrl] * Shift <> [] then
begin
...
end;
end;
Wydaje mi z moich testów i po prostu patrząc na kod jak to jest sprawdzenie czy zmiany biegów zawiera albo ssShift
lub ssCtrl
. Czy to udokumentowane zachowanie, czy po prostu wykorzystuje fakt, że zestaw jest wewnętrznie przechowywany jako liczba całkowita?
wewnętrzną reprezentację całkowitą nie byłyby wystarczające, aby umożliwić danej kalkulacji wszystko sama. –