Los operadores son funciones especiales definidas en el lenguaje de programación Verse que realizan acciones, como operaciones matemáticas, sobre sus operandos. Por ejemplo, en la expresión 1 + 2, el + es un operador. Por su parte, 1 y 2 son operandos.
Existen tres formatos de operadores que verás en Verse:
Prefijo: solo hay un operando y el operador está antes del operando.
Infijo: hay dos operandos y el operador está entre los operandos.
Sufijo: solo hay un operando y el operador está después del operando.
Esta página describe todos los operadores que puedes utilizar en Verse, cómo funcionan y su orden de evaluación cuando se utilizan en combinación con otros operadores.
Lista de todos los operadores y precedencia de los operadores
Cuando se utilizan varios operadores en la misma expresión, se evalúan en orden de mayor a menor precedencia. La siguiente tabla enumera todos los operadores incorporados en Verse y su precedencia.
| Nombre | Operador | Descripción | Formato del operador | precedencia de operadores | Ejemplo |
|---|---|---|---|---|---|
Consulta |
| El operador | posfijo | 9 |
|
No |
| El operador | Prefijo | 8 |
|
Positivo |
| Puedes usar el operador | Prefijo | 8 |
|
Negativo |
| Puedes utilizar el operador | Prefijo | 8 |
|
Multiplicación |
|
| infijo | 7 |
|
División |
| El operador | infijo | 7 |
|
Suma |
| El operador | infijo | 6 |
|
Resta |
| El operador | infijo | 6 |
|
Asignación de suma |
| Con este operador, puedes combinar la suma y la asignación en la misma operación para actualizar el valor de una variable. Consulta Matemáticas para obtener más información. | infijo | 5 |
|
Asignación de resta |
| Con este operador, puedes combinar la resta y la asignación en la misma operación para actualizar el valor de una variable. Consulta Matemáticas para obtener más información. | infijo | 5 |
|
Asignación de multiplicación |
| Con este operador, puedes combinar la multiplicación y la asignación en la misma operación para actualizar el valor de una variable. Consulta Matemáticas para obtener más información. | infijo | 5 |
|
Asignación de división |
| Con este operador, puedes combinar la división y la asignación en la misma operación para actualizar el valor de una variable, a menos que la variable sea un número entero. Consulta Matemáticas para obtener más información. | infijo | 5 |
|
Igual a |
| El operador | infijo | 4 |
|
No es igual a |
| El operador | infijo | 4 |
|
Menor que |
| El operador | infijo | 4 |
|
Menor o igual que |
| El operador | infijo | 4 |
|
Mayor que |
| El operador | infijo | 4 |
|
Mayor o igual que |
| El operador | infijo | 4 |
|
And |
| El operador | infijo | 3 |
|
O así: |
| El operador | infijo | 2 |
|
Inicialización de variables y constantes |
| Con este operador, puedes almacenar valores en una constante o en una variable. Para obtener más información, consulta Constantes y variables. | infijo | 1 |
|
Asignación de variables |
| Con este operador puedes actualizar los valores almacenados en una variable. Para obtener más información, consulta Constantes y variables. | infijo | 1 |
|
Si hay operadores con la misma precedencia en la misma expresión, se evalúan de izquierda a derecha. Por ejemplo, en la expresión 3*2/4, ambos operadores * y / tienen la misma precedencia, por lo que 3*2 se evalúa primero y su resultado se convierte en el operando izquierdo del operador /.
Puedes cambiar el orden de evaluación de los operadores agrupando las expresiones con (). Por ejemplo, (1+2)*3 y 1+(2*3) no se evalúan con el mismo resultado. Consulta Agrupación para obtener más información.
Comparación
Puedes controlar el flujo de éxitos y fallos con expresiones de comparación, que utilizan los operadores de desigualdad y de igualdad. Las expresiones de comparación son falibles, por lo que solo puedes utilizar operadores de comparación en contextos de errores, como en las expresiones `if`.
En la siguiente tabla se describe cada operador y los tipos que admite. Todos los operadores de comparación utilizan el formato infijo.
| Operador | Tipos integrados admitidos | Descripción |
|---|---|---|
|
| El operador |
|
| El operador |
|
| El operador |
|
| El operador |
|
| El operador |
|
| El operador |
Tanto <> como = también son compatibles con las instancias array, map, tuple y class, pero con restricciones. Las instancias array, map y tuple solo pueden contener tipos admitidos, y las instancias class solo se admiten si contienen al menos un miembro var.
Decisión
Puedes controlar el flujo de éxitos y errores con expresiones de decisión, que utilizan los operadores not, and y or. Las expresiones de decisión son falibles, por lo que solo puedes utilizar operadores de comparación en contextos de errores, como en las expresiones `if`. Puedes utilizar cualquier expresión que tenga éxito o no con operadores de decisión.
Operador NOT
El operador de decisión not niega el éxito o el error de una expresión. El operador not utiliza el formato de prefijo.
Por ejemplo, si expression falla, not expression se realizará correctamente. Si expression tiene éxito, not expression fallará, y los efectos de expression nunca se materializarán (como si la expresión nunca hubiese existido).
Por ejemplo, después de ejecutar el siguiente código, Example seguirá teniendo el valor inicial 0:
var Example : int = 0
if (not (set Example = ExampleArray[0])) { … }Puedes utilizar not not expression como forma de comprobar si una expresión tendrá éxito, pero hazlo de forma que la expresión nunca exista.
| Resultado de la expresión p | Resultado de la expresión not p | Resultado de la expresión not not p |
|---|---|---|
Tiene éxito y el resultado es | La expresión falla, y los efectos de | La expresión tiene éxito, pero los efectos de |
Falla y el resultado es ningún valor | La expresión tiene éxito. El resultado de la expresión es | La expresión falla. El resultado de la expresión es ningún valor. |
Referencia para el operador `not` que evalúa una expresión, representada por `p`.
Operadores y/o
El operador de decisión and utiliza el formato de infijo y es una expresión falible que tiene éxito si ambos operandos tienen éxito o fracasa si por lo menos un operando fracasa.
El operador de decisión o utiliza el formato de infijo y es:
Un contexto de fallo para el primer operando.
Una expresión falible solo si el segundo operando es falible.
El operador o omite la evaluación del segundo operando si el primer operando tiene éxito.
La siguiente tabla describe los resultados de todas las combinaciones de operandos de éxito y error para las expresiones de decisión que utilizan los operadores and y or.
| Resultado de la expresión p | Resultado de la expresión q | Resultado de la expresión p and q | Resultado de la expresión p or q |
|---|---|---|---|
Tiene éxito y el resultado es | Tiene éxito y el resultado es | La expresión tiene éxito, por lo que se confirma los efectos tanto de | La expresión tiene éxito, y solo se confirman los efecto de |
Tiene éxito y el resultado es | Falla y el resultado es ningún valor | La expresión falla, y los efectos de | La expresión tiene éxito, y solo se confirman los efecto de |
Falla y el resultado es ningún valor | Tiene éxito y el resultado es | La expresión falla, y los efectos de | La expresión tiene éxito, y solo se confirman los efecto de |
Falla y el resultado es ningún valor | Falla y el resultado es ningún valor | La expresión falla, y los efectos de | La expresión falla, y los efectos de |
Referencia para los operadores `and` y `or` que evalúan expresiones, representados por `p` y `q`.
Matemáticas
Con las expresiones matemáticas, puedes realizar las cuatro operaciones matemáticas básicas (suma, resta, multiplicación y división) con valores numéricos, y sumar cadenas. Todos los operadores utilizan el formato infijo, excepto + y - que también pueden ser un prefijo para valores numéricos.
También hay operadores de asignación, por ejemplo, set X += 10. Son casi lo mismo que hacer la operación y luego asignar el resultado, set X = X + 10, la diferencia es que la X en este caso solo se evalúa una vez. El resultado de un operador de asignación es el valor utilizado para actualizar la variable.
En la siguiente tabla se describe cada operador y los tipos que admite.
| Operador | Tipos integrados admitidos | Descripción |
|---|---|---|
|
| El operador |
|
| El operador |
|
|
|
|
| El operador |
|
| Con este operador, puedes combinar la suma y la asignación en la misma operación para actualizar el valor de una variable. |
|
| Con este operador, puedes combinar la resta y la asignación en la misma operación para actualizar el valor de una variable. |
|
| Con este operador, puedes combinar la multiplicación y la asignación en la misma operación para actualizar el valor de una variable. |
|
| Con este operador, puedes combinar la división y la asignación en la misma operación para actualizar el valor de una variable, a menos que la variable sea un número entero. Para más detalles sobre la división de enteros, consulta int. |
Consulta
Las expresiones de consulta utilizan el operador ? (consulta) y comprueban si un valor de logic es true. En caso contrario, la expresión falla. El operador ? (consulta) utiliza el formato sufijo.
| Resultado de la expresión p | Resultado de la expresión p? |
|---|---|
| Tiene éxito y resultado es |
| Falla y el resultado es ningún valor. |
Referencia para el operador ? (consulta) que evalúa expresiones, representado por p.
Por ejemplo:
if (IsMorning?):
Say("Good Morning!")