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.
Enums cerradas y abiertas
Verse utiliza los enums de atributo <open> y <closed> en las enums para determinar cómo puedes cambiar la definición de la enum una vez publicada tu isla.
Las enumsestán cerradas por defecto. Con las enums cerradas, no puedes añadir ni reordenar sus valores ni cambiar una enum cerrada a abierta una vez publicada la isla.
Las enums 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 enums abiertas, puedes:
Añadir nuevos valores de enum.
Reordenar los valores de enum.
Convertir una enumeración abierta en una cerrada.
Las enums abiertas se utilizan mejor cuando se espera que el número de valores de la enum aumente en el futuro. Por ejemplo, una enum de tipos de armas.
Las enums abiertas no pueden utilizarse en una instrucción case sin un `case` predeterminado. Las enums cerradas pueden utilizarse en instrucciones `case` sin `case` predeterminado solo si todos los valores de la enumeración tienen `case` .
Cómo crear una enum
| acción | Ejemplo de código |
|---|---|
Cómo crear enums cerradas: Las enums 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 enums 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 enums 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 enums están cerradas por defecto.
Enums publicadas
Una vez que hayas publicado tu isla, se corrigen ciertos aspectos de las enums cerradas y abiertas con el especificador <persistable>.
Enums 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.
Enums 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.