mayoría de los casos, los valores en si no importan; todo lo que importa es que tienen
asignado un numero único. Definiendo valores de enumeración de esta forma tiene la ventaja
de asegurar que los valores asignados son únicos y contiguos dentro del grupo.
Usando el ejemplo de arriba los métodos que usan pueden hacer cosas como lo que sigue
Mode
(Asumiendo que
es un símbolo activado por una llamada de objeto):
case Mode
RunTest
: <código de prueba aqui >
RunVerbose : <código abundante aqui >
RunBrief
: <código breve aqui >
RunFull
: <código completo aqui >
—o—
if Mode > RunVerbose
<brief and run mode code here>
Observe que estas rutinas no dependen del valor exacto del modo, pero si en la enumeración
del modo de símbolo para comparaciones así como la posición del símbolo en relación a otros
símbolos en la misma enumeración. Es importante escribir el código de esta forma para
reducir posibles Bugs en cambios futuros.
Las enumeraciones no tienen que ser coma separada tampoco. Los siguientes también
trabajan y dejan espacio para comentarios acerca de cada modo.
CON
'Declara modos de operación
#0
RunTest
RunVerbose
RunBrief
RunFull
El ejemplo de arriba hace lo mismo que el ejemplo anterior, pero ahora se cuenta con espacio
para comentarios que describen el propósito de cada modo sin perder la ventaja del
incremento automático. Después, si hay necesidad de agregar un quinto modo simplemente se
agrega a la lista en la posición que se necesite. Si hay necesidad de que la lista comience con
un numero determinado solo se cambia el
Mejor aun, es posible enumerar el valor en medio de la lista.
CON
'Declara modos de operación
#1, RunTest, RunVerbose, #5, RunBrief, RunFull
2: Referencia de Lenguaje Spin –
'Corre en modo de prueba
'Corre en modo abundante
'Corre con breves anuncios
'Corre en modo completo de producción
#0
al valor que se necesite:
CON
#1
#20
,
, etc.