Uma expressão é a menor unidade de código que tem um resultado quando avaliada. Em Verse, tudo é uma expressão, ou seja, tudo é avaliado como um valor.
Um exemplo é uma expressão if ... else, que em Verse é avaliada como um valor que depende do conteúdo dos
blocos de expressão. O código a seguir avalia e gera um valor de string contendo “Big!” ou “Small!”, dependendo se MyNumber é ou não maior que 5:
if (MyNumber > 5):
“Big!”
else
“Small!”Isso significa que você pode usar um if ... else diretamente como entrada para funções em vez de armazenar um resultado e usar esse resultado como entrada.
Embora esse exemplo seja simples, há contextos em que isso se torna mais eficiente. Por exemplo, loops são avaliados como matrizes de valores, para que você possa criar rapidamente novas matrizes com base nas existentes.
No código a seguir, MyArray conterá todos os valores de NumberArray menores que 5.
MyArray : []int = for(Number := NumberArray, Number < 5):
NumberExpressões falíveis
Uma expressão falível é uma expressão que pode ter sucesso e produzir um valor ou falhar e não retornar nenhum valor. Expressões falíveis só podem ser executadas em um contexto de falha, porque esse contexto definirá o que acontece no caso de a expressão falhar.
Exemplos de expressões falíveis incluem a indexação em uma matriz, pois um índice inválido causará uma falha, e o uso de operadores, como a comparação entre dois valores. Para obter mais informações sobre expressões falíveis em Verse, consulte Falha.
Lista de expressões em Verse
A tabela a seguir descreve os diferentes tipos de expressões no Verse. Explore esta página para obter uma visão geral dos diferentes tipos de expressões no Verse e siga os links para saber mais sobre cada expressão.
| Expressão | Descrição | A expressão é falível? |
|---|---|---|
Literais | Um literal é um valor fixo no seu código, como um número ou um caractere. Em Verse, existem literais para os seguintes tipos:
| |
Chamadas de Função | A chamada de função é uma expressão e pode ter duas formas: | Somente quando a chamada de função tiver o formato |
Comparação | Uma expressão de comparação compara duas coisas usando um dos operadores de comparação:
Consulte Operadores para obter mais detalhes. | Sim |
Atribuição | Uma expressão de atribuição armazena um valor em um local mutável, como ao inicializar uma constante ou alterar o valor de uma variável. Consulte Variáveis e constantes para obter mais detalhes. | |
Matemática | Uma expressão matemática executa cálculos usando os operadores:
Todos esses operadores também possuem variantes de atribuição que podem ser usadas com ponteiros. Consulte Operadores para obter mais detalhes. | Apenas para divisão inteira. |
Decisão | Uma expressão de decisão usa os operadores | Sim |
Consulta | Uma expressão de consulta usa o operador | Sim |
Instanciação de classe e struct | Criar uma instância de uma | |
Fluxo de controle | O fluxo de controle é a ordem na qual um computador executa instruções. Você pode usar expressões como
Consulte mais detalhes em Fluxo de controle. | |
Matriz | Uma matriz é um contêiner em que você pode armazenar elementos do mesmo tipo. Os elementos de uma matriz ficam na ordem em que você os insere nela, e você pode acessar os elementos por sua posição na matriz, chamada de índice. Para obter mais informações, consulte Matriz. | Somente ao indexar em uma matriz. |
tupla | Uma tupla é um contêiner em que você pode armazenar elementos de um ou mais tipos. Os elementos de uma tupla estão na ordem em que você os insere na tupla, e você pode acessar os elementos pela posição que ocupam na tupla, chamada de índice. Para obter mais informações, consulte Tupla. | |
Map | Um mapa é um contêiner em que você pode armazenar valores associados a outro valor, chamado de pares chave-valor. Os pares valor-chave podem ser qualquer combinação de tipos, desde que o tipo de chave seja comparável. Os elementos de um map estão na ordem em que você insere os pares valor-chave no map e podem ser acessados por suas chaves exclusivas. Consulte mais informações em Mapa. | |
Option | Uma opção é um contêiner que pode ter um ou nenhum valor de um tipo. Para obter mais informações, consulte Opção. | |
Alcance | As expressões de intervalo contêm todos os números entre e incluindo os dois valores especificados, com |