Enum es la abreviatura de enumeración, que significa nombrar o enumerar una serie de cosas, llamadas enumeradores. Se trata de un tipo en Verse que puede utilizarse para cosas como los días de la semana o las indicaciones de una brújula.
Haz clic en la imagen para ampliarla.
Enumeraciones cerradas y abiertas
Verse utiliza los especificadores de atributo <open> y <closed> en las enumeraciones para determinar cómo puedes cambiar la definición de la enumeración una vez publicada tu isla.
Las enumeraciones están cerradas por defecto. Con las enumeraciones cerradas, no puedes añadir ni reordenar sus valores ni cambiar una enumeración cerrada a abierta una vez publicada la isla.
Las enumeraciones cerradas funcionan mejor en los casos en los que se espera que los valores permanezcan iguales, como los días de la semana.
Con las enumeraciones abiertas, puedes:
Añadir nuevos valores de enumeración.
Reordenar los valores de enumeración.
Convertir una enumeración abierta en una cerrada.
Las enumeraciones abiertas se utilizan mejor cuando se espera que el número de valores de la enumeración aumente en el futuro. Por ejemplo, un enumeración de tipos de armas.
Las enumeraciones abiertas no pueden utilizarse en una instrucción case sin un `case` predeterminado. Las enumeraciones cerradas pueden utilizarse en instrucciones `case` sin `case` predeterminado solo si todos los valores de la enumeración tienen `case` .
Cómo crear una enumeración
| acción | Ejemplo de código |
|---|---|
Cómo crear enumeraciones cerradas: Las enumeraciones están cerradas por defecto. Utiliza la palabra clave Puedes definir explícitamente la enumeración como cerrada incluyendo el especificador | Verse |
Cómo crear enumeraciones abiertas: Debes definir explícitamente una enumeración abierta incluyendo el especificador | Verse |
Acceder a un enumerador: utiliza | Verse |
Tipo persistente
Una enumeración es persistente cuando se define con el especificador <persistable>. Esto significa que puedes utilizarlos en las variables weak_map de tu ámbito de módulo y hacer que sus variables se mantengan a lo largo de las sesiones de juego:
Para obtener más información sobre la persistencia en Verse, consulta la sección Cómo utilizar datos persistentes en Verse.
Las enumeraciones no persistentes no se pueden utilizar con datos persistentes.
A continuación, se muestra un ejemplo de una enumeración persistente cerrada para los días de la semana que se puede almacenar, actualizar y a la que se puede acceder posteriormente para un jugador.
day := enum<persistable>:
Monday
Tuesday
Wednesday
Thursday
Friday
Saturday
SundaySi no se especifica, todas las enumeraciones están cerradas por defecto.
Enumeraciones publicadas
Una vez que hayas publicado tu isla, se corrigen ciertos aspectos de las enumeraciones cerradas y abiertas con el especificador <persistable>.
Enumeraciones cerradas:
No se puede actualizar para que se convierta en
<open>.No se pueden añadir, cambiar el nombre, reordenar ni eliminar valores de enumeración.
Si no se especifica, puedes añadir el
<closed>especificador.
Enumeraciones abiertas:
Puede actualizarse para convertirse en una enumeración cerrada con el especificador
<closed>.Puedes añadir y reordenar valores de enumeración.
No se puede cambiar el nombre ni eliminar los valores de enumeración.
No se permite utilizar en instrucciones `case` en sin un `case` por defecto.