Tipos enumerados en Delphi
TPhase nombra las cuatro fases de la luna, y un case elige la línea que se imprime.
program EnumsBasics;
type
TPhase = (Dark, Waxing, Full, Waning);
var
Phase: TPhase;
begin
Phase := Full;
case Phase of // case branches on the value, not on a number
Dark: WriteLn('no moon tonight');
Waxing: WriteLn('growing');
Full: WriteLn('full moon');
Waning: WriteLn('shrinking');
end;
// Ord gives the position in the list, counting from zero.
WriteLn('ord ', Ord(Phase), ', prev ', Ord(Pred(Phase)));
WriteLn('next phase ', Ord(Succ(Phase))); // Succ steps forward one
end.
Cómo funciona
TPhase = (Dark, Waxing, Full, Waning);declara cuatro valores con nombre, en orden.case Phase ofse ramifica sobre el valor mismo, con una rama por fase.Ord(Phase)da su posición, mientras quePredySuccretroceden y avanzan.
Palabras clave y builtins usados aquí
OrdPredSuccWriteLnbegincaseendofprogramtypevar
El intento, en números
- Líneas
- 17
- Caracteres a escribir
- 495
- Tokens
- 108
- Ritmo de tres estrellas
- 75 tpm
Al ritmo de tres estrellas de 75 tokens por minuto, este intento toma unos 86 segundos.
Paso 1 de 3 en Enums y conjuntos; paso 16 de 27 en Fundamentos del lenguaje.