Compartir a través de


Expresiones

En esencia, las expresiones de Q# son literales de valor o identificadores, donde los identificadores pueden hacer referencia a variables declaradas localmente o a elementos invocables declarados globalmente (actualmente no hay constantes globales en Q#). Se pueden usar operadores, combinadores y modificadores para combinarlos en una variedad más amplia de expresiones.

  • En cierto sentido, los operadores no son más que una sintaxis dedicada para determinados elementos invocables.

    Aunque Q# no es todavía lo suficientemente expresivo como para capturar formalmente las funcionalidades de cada operador en forma de una declaración invocable de respaldo, esto debería corregirse en el futuro.

  • Los modificadores solo se pueden aplicar a determinadas expresiones. Se pueden aplicar uno o varios modificadores a expresiones que son identificadores, expresiones de acceso a elementos de matriz, expresiones de acceso a elementos con nombre o una expresión entre paréntesis que es la misma que una tupla de un solo elemento (consulte esta sección). Pueden preceder (prefijo) a la expresión o seguir (postfijo) a la expresión. Por lo tanto, son operadores unarios especiales que se enlazan de una forma más estricta que las llamadas de función u operación, pero menos estricta que cualquier tipo de acceso a elementos. En concreto, los functores son modificadores de prefijo, mientras que el operador de desencapsulado es un modificador de postfijos.

  • Igual que los modificadores, las llamadas a funciones y operaciones, así como el acceso a elementos, se pueden ver como un tipo especial de operador sujeto a las mismas restricciones con respecto a su aplicación; nos referimos a ellos como combinadores.

La sección sobre precedencia y asociatividad contiene una lista completa de todos los operadores, así como una lista completa de todos los modificadores y combinadores.