Operadores são funções especiais definidas na linguagem de programação Verse que executam ações, como operações matemáticas, em seus operandos. Por exemplo, na expressão 1 + 2, o + é um operador, e 1 e 2 são operandos.
Você verá três formatos para operadores no Verse:
Prefix: há apenas um operando e o operador está antes do operando.
Infixo: existem dois operandos e o operador está entre os operandos.
Sufixo: existe apenas um operando e o operador está após o operando.
Esta página descreve todos os operadores que você pode usar no Verse, como eles funcionam e sua ordem de avaliação quando usados em combinação com outros operadores.
Lista de todos os operadores e a precedência do operador
Quando vários operadores são usados na mesma expressão, eles são avaliados na ordem de precedência da mais alta para a mais baixa. A tabela abaixo lista todos os operadores integrados no Verse e sua precedência.
| Nome | Operador | Descrição | Formato do operador | Precedência de operadores | Exemplo |
|---|---|---|---|---|---|
Consulta |
| O operador | pós-fixação | 9 |
|
Not |
| O operador | Prefixo | 8 |
|
Positivo |
| Você pode usar o operador | Prefixo | 8 |
|
Negativo |
| Você pode usar o operador | Prefixo | 8 |
|
Multiplicação |
| O | infixo | 7 |
|
Divisão |
| O operador | infixo | 7 |
|
Adição |
| O operador | infixo | 6 |
|
Subtração |
| O operador | infixo | 6 |
|
Atribuição de adição |
| Com este operador, você pode combinar adição e atribuição na mesma operação para atualizar o valor de uma variável. Consulte mais detalhes em Matemática. | infixo | 5 |
|
Atribuição de subtração |
| Com esse operador, você pode combinar subtração e atribuição na mesma operação para atualizar o valor de uma variável. Consulte mais detalhes em Matemática. | infixo | 5 |
|
Atribuição de multiplicação |
| Com este operador, você pode combinar multiplicação e atribuição na mesma operação para atualizar o valor de uma variável. Consulte mais detalhes em Matemática. | infixo | 5 |
|
Atribuição de divisão |
| Com este operador, você pode combinar divisão e atribuição na mesma operação para atualizar o valor de uma variável, a menos que a variável seja um inteiro. Consulte mais detalhes em Matemática. | infixo | 5 |
|
Igual a |
| O operador | infixo | 4 |
|
Not equal to |
| O operador | infixo | 4 |
|
Menor que |
| O operador | infixo | 4 |
|
Menor ou igual a |
| O operador | infixo | 4 |
|
Maior que |
| O operador | infixo | 4 |
|
Maior ou igual a |
| O operador | infixo | 4 |
|
E |
| O operador | infixo | 3 |
|
Or |
| O operador | infixo | 2 |
|
Inicialização de variável e constante |
| Com este operador, você pode armazenar valores em uma constante ou variável. Consulte mais detalhes em Constantes e variáveis. | infixo | 1 |
|
Atribuição de variáveis |
| Com este operador, você pode atualizar os valores armazenados em uma variável. Consulte mais detalhes em Constantes e variáveis. | infixo | 1 |
|
Se houver operadores com a mesma precedência na mesma expressão, eles serão avaliados da esquerda para a direita. Por exemplo, na expressão 3*2/4, ambos os operadores * e / têm a mesma precedência, então 3*2 é avaliado primeiro e seu resultado se torna o operando esquerdo para o operador /.
Você pode alterar a ordem na qual os operadores são avaliados agrupando expressões com (). Por exemplo, (1+2)*3 e 1+(2*3) não são avaliados para o mesmo resultado. Consulte mais detalhes em Agrupamento.
Comparação
Você pode controlar o fluxo de sucesso e falha com expressões de comparação, que usam os operadores de desigualdade e igualdade. As expressões de comparação são falíveis, portanto você só pode usar operadores de comparação em contextos de falha, como em expressões if.
A tabela abaixo descreve cada operador e quais tipos são compatíveis. Todos os operadores de comparação usam o formato infixo.
| Operador | Tipos integrados compatíveis | Descrição |
|---|---|---|
|
| O operador |
|
| O operador |
|
| O operador |
|
| O operador |
|
| O operador |
|
| O operador |
Tanto <> quanto = também são compatíveis com instâncias de array, map, tuple e class, mas com restrições. As instâncias de array, map e tuple só podem conter tipos suportados, e instâncias class só são compatíveis se contiverem pelo menos um membro var.
Decisão
Você pode controlar o fluxo de sucesso e falha com expressões de decisão, que usam os operadores not, and e or. As expressões de decisão são falíveis, portanto você só pode usar operadores de comparação em contextos de falha, como em expressões if. Você pode usar quaisquer expressões que tenham sucesso ou falhem com operadores de decisão.
Operador Not
O operador de decisão not nega o sucesso ou falha de uma expressão. O operador not (negação) usa o formato de prefixo.
Por exemplo, quando a expressão falha, a expressão not terá sucesso. Quando a expressão tiver sucesso, a expressão not falhará e os efeitos da expressão nunca serão confirmados (como se a expressão nunca tivesse acontecido).
Por exemplo, depois que o código a seguir for executado, Example ainda terá o valor inicial 0:
var Example : int = 0
if (not (set Example = ExampleArray[0])) { … }Você pode usar a expressão not not como uma forma de verificar se uma expressão terá sucesso, mas fazer com que a expressão nunca aconteça.
| Resultado da expressão p | Resultado da expressão not p | Resultado da expressão not not p |
|---|---|---|
Tem sucesso e o resultado é | A expressão falha, e os efeitos de | A expressão tem sucesso, mas os efeitos de |
Falha e não retorna nenhum valor | A expressão tem sucesso. O resultado da expressão é | A expressão falhará. O resultado da expressão é nenhum valor. |
Referência para o operador not (negação) que avalia uma expressão, representada por p.
Operadores And/Or
O operador de decisão and usa o formato infixo e é uma expressão passível de falha que tem sucesso se ambos os operandos forem bem-sucedidos ou falha se pelo menos um dos operandos falhar.
O operador de decisão or usa o formato infixo e é:
Um contexto de falha para o primeiro operando.
Uma expressão falível somente se o segundo operando for falível.
O operador or pula a avaliação do segundo operando se o primeiro operando tiver sucesso.
A tabela abaixo descreve os resultados de todas as combinações de operandos de sucesso e falha para expressões de decisão usando os operadores and e or.
| Resultado da expressão p | Resultado da expressão q | Resultado da expressão p e q | Resultado da expressão p ou q |
|---|---|---|---|
Tem sucesso e o resultado é | Tem sucesso e o resultado é | A expressão tem sucesso, portanto os efeitos de | A expressão tem sucesso, e apenas os efeitos de |
Tem sucesso e o resultado é | Falha e não retorna nenhum valor | A expressão falha, e os efeitos de | A expressão tem sucesso, e apenas os efeitos de |
Falha e não retorna nenhum valor | Tem sucesso e o resultado é | A expressão falha, e os efeitos de | A expressão tem sucesso, e apenas os efeitos de |
Falha e não retorna nenhum valor | Falha e não retorna nenhum valor | A expressão falha, e os efeitos de | A expressão falha, e os efeitos de |
Referência para os operadores "and" e "or" que avaliam expressões, representadas por p e q.
Matemática
Com as expressões matemáticas, você pode fazer as quatro operações matemáticas básicas (adição, subtração, multiplicação e divisão) com valores numéricos e adicionar strings. Todos os operadores usam o formato infixo, exceto + e -, que também podem ser um prefixo para valores numéricos.
Existem também operadores de atribuição, por exemplo, set X += 10. Eles são quase o mesmo que fazer a operação e depois atribuir o resultado, set X = X + 10, a diferença é que o X neste caso é avaliado apenas uma vez. O resultado de um operador de atribuição é o valor usado para atualizar a variável.
A tabela abaixo descreve cada operador e quais tipos ele suporta.
| Operador | Tipos integrados compatíveis | Descrição |
|---|---|---|
|
| O operador |
|
| O operador |
|
| O |
|
| O operador |
|
| Com este operador, você pode combinar adição e atribuição na mesma operação para atualizar o valor de uma variável. |
|
| Com esse operador, você pode combinar subtração e atribuição na mesma operação para atualizar o valor de uma variável. |
|
| Com este operador, você pode combinar multiplicação e atribuição na mesma operação para atualizar o valor de uma variável. |
|
| Com este operador, você pode combinar divisão e atribuição na mesma operação para atualizar o valor de uma variável, a menos que a variável seja um inteiro. Para obter mais detalhes sobre divisão de números inteiros, consulte int. |
Consulta
As expressões de consulta usam o operador ? Faça uma consulta e verifique se um valor logic é true. Caso contrário, a expressão falhará. O operador ? (consulta) usa o formato sufixo.
| Resultado da expressão p | Resultado da expressão p? |
|---|---|
| Tem sucesso e o resultados é |
| Falha e não retorna nenhum valor. |
Referência para o operador ? Operador de consulta que avalia expressões, representadas por p.
Por exemplo:
if (IsMorning?):
Say("Good Morning!")