Enum é a abreviação de enumeração, que significa nomear ou listar uma série de coisas, chamadas de enumeradores. Este é um tipo no Verse que pode ser usado para coisas como dias da semana ou direções da bússola.
Clique na imagem para ampliar.
Enumerações fechadas e abertas
O Verse usa os especificadores de atributo <open> e <closed> em enumerações para determinar como você pode alterar a definição da enumeração depois que sua ilha for publicada.
As enumerações são fechadas por padrão. Com enumerações fechadas, você não poderá adicionar ou reordenar valores de enumeração ou alterar uma enumeração fechada para uma aberta depois que sua ilha for publicada.
Enumerações fechadas são mais eficientes para casos em que se espera que seus valores permaneçam os mesmos, como dias da semana.
Com enumerações abertas , você pode:
Adicionar novos valores de enumeração.
Reordenar os valores de enumeração.
Alterar uma enumeração aberta para uma enumeração fechada.
Enumerações abertas são melhores quando se espera que o número de valores na enumeração possa aumentar no futuro. Por exemplo, uma enumeração de tipos de armas.
Enumerações abertas não podem ser usadas em uma instrução de caso sem um caso padrão. Enumerações fechadas poderão ser usadas em instruções de caso sem um caso padrão somente se todos os valores de enumeração tiverem um caso.
Como criar uma enumeração
| Ação | Exemplo de código |
|---|---|
Como criar enumerações fechadas: As enumerações são fechadas por padrão. Use a palavra-chave Você pode definir explicitamente a enumeração como fechada incluindo o especificador | Verse |
Como criar enumerações abertas: Você deve definir explicitamente uma enum aberta incluindo o especificador | Verse |
Como acessar um enumerador: use | Verse |
Tipo persistente
Uma enumeração é persistente quando definida com o especificador <persistable>. Ou seja, você pode usá-los nas variáveis weak_map com escopo de módulo e fazer com que seus valores persistam entre as sessões de jogo.
Consulte mais detalhes sobre a persistência em Verse em Como usar dados persistentes em Verse.
Enumerações não persistentes não podem ser usadas com dados persistentes.
O exemplo a seguir mostra uma enumeração persistente fechada para os dias da semana que pode ser armazenada, atualizada e acessada posteriormente para um jogador.
day := enum<persistable>:
Monday
Tuesday
Wednesday
Thursday
Friday
Saturday
SundaySe não for especificado, todas as enumerações serão fechadas por padrão.
Enumerações publicadas
Depois de publicar sua ilha, alguns aspectos de enumerações fechadas e abertas com o especificador <persistable> são fixos.
Enumerações fechadas:
Não podem ser atualizadas para se tornarem
<open>.Não podem adicionar, renomear, reordenar ou remover valores de enumerações.
Se não for especificado, você poderá adicionar o especificador
<closed>.
Enumerações abertas:
Podem ser atualizadas para se tornarem uma enumeração fechada com o especificador
<closed>.Podem adicionar e reordenar valores de enumerações.
Não podem renomear ou remover valores de enumerações.
Não podem ser usadas em instruções de caso sem um caso padrão.