Smart pascal source code
type
TTestEnum = (teOne, teTwo, teThree, teFour);
function Reverse1(const value: TTestEnum): TTestEnum;
const
cTestEnumReversed: array [0 .. 3] of TTestEnum = (teFour, teThree,
teTwo, teOne);
begin
Result := cTestEnumReversed[Ord(value)];
end;
function Reverse2(const value: TTestEnum): TTestEnum;
const
cTestEnumReversed: array [TTestEnum] of TTestEnum = (teFour, teThree,
teTwo, teOne);
begin
Result := cTestEnumReversed[value];
end;
WriteLn(Reverse1(teOne) = teFour);
WriteLn(Reverse2(teOne) = teFour);
{ <<< CONSOLE OUTPUTS >>>
True
True
}
/// TTestEnum enumeration
/// [line: 40, column: 5, file: uMain]
var TTestEnum = [ "teOne", "teTwo", "teThree", "teFour" ];
function Reverse2(value) {
var Result = 0;
var cTestEnumReversed = [3,2,1,0];
Result = cTestEnumReversed[value];
return Result
};
function Reverse1(value$1) {
var Result = 0;
var cTestEnumReversed$1 = [3,2,1,0];
Result = cTestEnumReversed$1[value$1];
return Result
};
WriteLn((Reverse1(0)==3));
WriteLn((Reverse2(0)==3));