Enum es la forma abreviada de enumeración, que significa nombrar o enumerar una serie de cosas, que se denominan enumeradores. En Verse, este es un tipo que puede usarse para cosas como días de la semana o direcciones 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 que se publica la isla.
Las enumeraciones se cierran de forma predeterminada. Con las enums cerradas, no puedes agregar ni reordenar valores de enum, ni cambiar una enum cerrada por una abierta una vez que se publicó la isla.
Las enumeraciones cerradas se utilizan mejor para los casos en los que se espera que los valores permanezcan iguales, como los días de la semana.
Con las enumeraciones abiertas , puedes hacer lo siguiente:
Agregar nuevos valores de enumeración.
Reordenar los valores de enum.
Cambia una enum abierta a una enum cerrada.
Las enumeraciones abiertas se utilizan mejor cuando se espera que la cantidad de valores en su enum aumente en el futuro. Por ejemplo, un enum de tipos de armas.
Las enumeraciones abiertas no se pueden utilizar en una declaración de caso sin un caso predeterminado. Las enumeraciones cerradas se pueden usar en instrucciones de caso sin un caso predeterminado solo si todos los valores de enumeración tienen un caso.
Cómo crear un Enum
| acción | Ejemplo de código |
|---|---|
Cómo crear enumeraciones cerradas: Las enumeraciones se cierran de forma predeterminada. Usa 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: usa | Verse |
Tipo persistente
Una enumeración es persistente cuando se define con el especificador <persistable>. Esto quiere decir que lo puedes usar en tus variables weak_map del módulo y hacer que sus valores persistan a lo largo de las sesiones de juego.
Para obtener más información sobre la persistencia en Verse, consulta Cómo usar datos persistentes en Verse.
Las enumeraciones no persistentes no se pueden utilizar con datos persistentes.
El siguiente es un ejemplo de una enumeración persistente cerrada para días de la semana que puede almacenarse, actualizarse y consultarse más adelante por un jugador.
day := enum<persistable>:
Monday
Tuesday
Wednesday
Thursday
Friday
Saturday
SundaySi no se especifica, todas las enumeraciones son cerradas de forma predeterminada.
Enumeradores publicados
Una vez que hayas publicado tu isla, se corregirán ciertos aspectos de las enumeraciones cerradas y abiertas con el especificador <persistable>.
Enumeraciones cerradas:
No se puede actualizar para convertirse en
<open>.No se pueden agregar, cambiar el nombre, reordenar ni eliminar valores de enum.
Si no se especifica, puedes añadir el especificador
<closed>.
Enumeraciones abiertas:
Se puede actualizar para convertirse en una enumeración cerrada con el especificador
<closed>.Puede agregar y reordenar valores de enum.
No se puede cambiar el nombre o eliminar los valores de enum.
No se puede usar en instrucciones de caso sin un caso predeterminado.