Compartir vía


Referencia de símbolos y operadores

En este artículo se incluyen tablas que describen los símbolos y operadores que se usan en F# y se proporciona una breve descripción de cada uno. Algunos símbolos y operadores tienen dos o más entradas cuando se usan en varios roles.

Comentario, directiva del compilador y símbolos de atributo

En la tabla siguiente se describen los símbolos relacionados con comentarios, directivas del compilador y atributos.

Símbolo o operador Enlaces Descripción
(*...*) Delimita un comentario que podría abarcar varias líneas.
// Indica el principio de un comentario de una sola línea.
/// Documentación XML Indica un comentario XML.
# Directivas del compilador Prefijos de una directiva de preprocesador o compilador.
[<...>] Atributos Delimita un atributo.

Símbolos de cadena e identificador

En la tabla siguiente se describen los símbolos relacionados con las cadenas.

Símbolo o operador Enlaces Descripción
" Cadenas Delimita una cadena de texto.
@" Cadenas Inicia una cadena de texto textual, que puede incluir barras diagonales inversas y otros caracteres.
""" Cadenas Delimita una cadena de texto entre comillas triples, que puede incluir barras diagonales inversas, comillas dobles y otros caracteres.
$" Cadenas interpoladas Inicia una cadena interpolada.
' literales Delimita un literal de un solo carácter.
``...`` Delimita un identificador que, de lo contrario, no sería un identificador legal, como una palabra clave de lenguaje.
\ Cadenas Escape al siguiente carácter; se usa en literales de caracteres y cadenas.

Operadores aritméticos

En la tabla siguiente se describen los operadores aritméticos.

Símbolo o operador Enlaces Descripción
+ Operadores aritméticos
  • Cuando se usa como operador binario, agrega los lados izquierdo y derecho.
  • Cuando se usa como operador unario, indica una cantidad positiva. (Formalmente, genera el mismo valor con el signo sin cambios).
- Operadores aritméticos
  • Cuando se usa como operador binario, resta el lado derecho del lado izquierdo.
  • Cuando se usa como operador unario, realiza una operación de negación.
* Operadores aritméticos

Tuplas

Unidades de medida
  • Cuando se usa como operador binario, multiplica los lados izquierdo y derecho.
  • En tipos, indica el emparejamiento en una tupla.
  • Se usa en unidades de tipos de medida.
/ Operadores aritméticos

Unidades de medida
  • Divide el lado izquierdo (numerador) por el lado derecho (denominador).
  • Se usa en unidades de tipos de medida.
% Operadores aritméticos Calcula el resto entero.
** Operadores aritméticos Calcula la operación de exponente (x ** y significa x para la potencia de y).

Operadores de comparación

En la tabla siguiente se describen los operadores de comparación.

Símbolo o operador Enlaces Descripción
< Operadores aritméticos Calcula la operación menor que.
<> Operadores aritméticos Devuelve true si el lado izquierdo no es igual al lado derecho; de lo contrario, devuelve false.
<= Operadores aritméticos Devuelve true si el lado izquierdo es menor o igual que el lado derecho; de lo contrario, devuelve false.
= Operadores aritméticos Devuelve true si el lado izquierdo es igual al lado derecho; de lo contrario, devuelve false.
> Operadores aritméticos Devuelve true si el lado izquierdo es mayor que el lado derecho; de lo contrario, devuelve false.
>= Operadores aritméticos Devuelve true si el lado izquierdo es mayor o igual que el lado derecho; de lo contrario, devuelve false.

Operadores booleanos

En la tabla siguiente se describen los símbolos de operadores aritméticos y booleanos.

Símbolo o operador Enlaces Descripción
&& Operadores booleanos Calcula la operación BOOLEAN AND.
|| Operadores booleanos Calcula la operación OR booleana.

Operadores bit a bit

En la tabla siguiente se describen los operadores bit a bit.

Símbolo o operador Enlaces Descripción
&&& Operadores bit a bit Calcula la operación AND bit a bit.
<<< Operadores bit a bit Desplaza los bits de la cantidad del lado izquierdo a la izquierda por el número de bits especificados en el lado derecho.
>>> Operadores bit a bit Desplaza bits en la cantidad del lado izquierdo a la derecha por el número de lugares especificados en el lado derecho.
^^^ Operadores bit a bit Calcula la operación OR exclusiva bit a bit.
||| Operadores bit a bit Calcula la operación OR bit a bit.
~~~ Operadores bit a bit Calcula la operación NOT bit a bit.

Símbolos y operadores de función

En la tabla siguiente se describen los operadores y símbolos relacionados con las funciones.

Símbolo o operador Enlaces Descripción
-> Funciones En las expresiones de función, separa el patrón de entrada de la expresión de salida.
|> Funciones Pasa el resultado del lado izquierdo a la función en el lado derecho (operador de canalización hacia delante).
||> ( ||> )<'T1,'T2,'U> Function Pasa la tupla de dos argumentos en el lado izquierdo a la función del lado derecho.
|||> ( |||> )<'T1,'T2,'T3,'U> Function Pasa la tupla de tres argumentos en el lado izquierdo a la función del lado derecho.
>> Funciones Compone dos funciones (operador de composición hacia delante).
<< Funciones Compone dos funciones en orden inverso; la segunda se ejecuta primero (operador de composición hacia atrás).
<| Funciones Pasa el resultado de la expresión en el lado derecho a la función en el lado izquierdo (operador de canalización hacia atrás).
<|| ( <|| )<' T1,'T2,'U> Function Pasa la tupla de dos argumentos en el lado derecho a la función en el lado izquierdo.
<||| ( <||| )<' T1,'T2,'T3,'U> Function Pasa la tupla de tres argumentos en el lado derecho a la función en el lado izquierdo.

Tipos de símbolos y operadores

En la tabla siguiente se describen los símbolos relacionados con las pruebas de tipo anotación y tipo.

Símbolo o operador Enlaces Descripción
-> Funciones En los tipos de función, delimita los argumentos y los valores devueltos, también produce un resultado en expresiones de secuencia.
: Funciones En una anotación de tipo, separa un parámetro o un nombre de miembro de su tipo.
:> Conversiones y conversión Convierte un tipo en el tipo que es superior en la jerarquía.
:? Expresiones de coincidencia Devuelve true si el valor coincide con el tipo especificado (incluido si es un subtipo); de lo contrario, devuelve false (operador de prueba de tipo).
:?> Conversiones y conversión Convierte un tipo en un tipo inferior en la jerarquía.
# Tipos flexibles Cuando se usa con un tipo , indica un tipo flexible, que hace referencia a un tipo o a cualquiera de sus tipos derivados.
' Generalización automática Indica un parámetro de tipo genérico.
<...> Generalización automática Delimita parámetros de tipo.
^ Parámetros de tipo resueltos estáticamente

Cadenas
  • Especifica los parámetros de tipo que se deben resolver en tiempo de compilación, no en tiempo de ejecución.
  • Concatena cadenas.
{} Clase o registro Cuando se usa con la type palabra clave , delimita una clase o un registro. El tipo es una clase cuando se declaran miembros o se usa la class palabra clave . De lo contrario, es un registro.
{||} Registro anónimo Denota un registro anónimo

Símbolos usados en expresiones de segmento y búsqueda de miembros

En la tabla siguiente se describen los símbolos adicionales usados en las expresiones de búsqueda de miembros y segmentación.

Símbolo o operador Enlaces Descripción
. Miembros Obtiene acceso a un miembro y separa los nombres individuales en un nombre completo.
[...] o .[...] matrices de

Propiedades indexadas

Expresiones de segmento
Índices en una matriz, cadena o colección, o toma un segmento de una colección.

Símbolos usados en tupla, lista, matriz, expresiones de unidad y patrones

En la tabla siguiente se describen los símbolos relacionados con las tuplas, listas, valores de unidad y matrices.

Símbolo o operador Enlaces Descripción
( ) Tipo de unidad Representa el valor único del tipo de unidad.
, Tuplas Separa los elementos de una tupla o parámetros de tipo.
:: Listas

Expresiones de coincidencia
  • Crea una lista. El elemento del lado izquierdo se antepone a la lista del lado derecho.
  • Se usa en la coincidencia de patrones para separar las partes de una lista.
@ Listas Concatena dos listas.
[...] Listas Delimita los elementos de una lista.
[|...|] matrices de Delimita los elementos de una matriz.

Símbolos usados en expresiones imperativas

En la tabla siguiente se describen símbolos adicionales usados en expresiones.

Símbolo o operador Enlaces Descripción
<- Valores Asigna un valor a una variable.
; Sintaxis detallada

Separa expresiones (usadas principalmente en la sintaxis detallada). También separa los elementos de una lista o campos de un registro.

Símbolos adicionales usados en secuencias y expresiones de cálculo

En la tabla siguiente se describen símbolos adicionales usados en secuencias y expresiones de cálculo.

Símbolo o operador Enlaces Descripción
-> Secuencias Produce una expresión (en expresiones de secuencia); equivalente a las do yield palabras clave.
! Expresiones de cálculo Después de una palabra clave, indica una versión modificada del comportamiento de la palabra clave como controlada por una expresión de cálculo.

Símbolos adicionales usados en patrones de coincidencia

En la tabla siguiente se describen los símbolos relacionados con la coincidencia de patrones.

Símbolo o operador Enlaces Descripción
-> Expresiones de coincidencia Se usa en expresiones de coincidencia.
& Coincidencia de patrones
  • Calcula la dirección de un valor mutable, para su uso al interoperar con otros lenguajes.
  • Se usa en los patrones AND.
_ Expresiones de coincidencia

Genéricos
  • Indica un patrón de caracteres comodín.
  • Especifica un parámetro genérico anónimo.
| Expresiones de coincidencia Delimita casos de coincidencia individuales, casos de unión discriminados individuales y valores de enumeración.

Símbolos adicionales usados en declaraciones

En la tabla siguiente se describen los símbolos relacionados con las declaraciones.

Símbolo o operador Enlaces Descripción
(|...|) Patrones activos Delimita un nombre de patrón activo. También se denomina clips de plátano.
? Parámetros y argumentos Especifica un argumento opcional.
~~ Sobrecarga de operadores Se usa para declarar una sobrecarga para el operador de negación unario.
~- Sobrecarga de operadores Se usa para declarar una sobrecarga para el operador unario menos.
~+ Sobrecarga de operadores Se usa para declarar una sobrecarga para el operador unario más.

Símbolos adicionales usados entre comillas

En la tabla siguiente se describen los símbolos relacionados con las comillas de código.

Símbolo o operador Enlaces Descripción
<@...@> Comillas de código Delimita una comilla de código con tipo.
<@@...@@> Comillas de código Delimita una comilla de código sin tipo.
% Comillas de código Se usa para splicing expressions en comillas de código con tipo.
%% Comillas de código Se usa para splicing expressions en comillas de código sin tipo.

Operadores de búsqueda dinámica

En la tabla siguiente se describen símbolos adicionales usados en expresiones de búsqueda dinámica. Por lo general, no se usan en la programación de F# rutinaria y no se proporcionan implementaciones de estos operadores en la biblioteca principal de F#.

Símbolo o operador Enlaces Descripción
? Se usa como operador para las llamadas a métodos y propiedades dinámicos.
? ... <- ... Se usa como operador para establecer propiedades dinámicas.

Operadores que aceptan valores NULL en consultas

Los operadores que aceptan valores NULL se definen para su uso en expresiones de consulta. En la tabla siguiente se muestran estos operadores.

Símbolo o operador Enlaces Descripción
%? Operadores que aceptan valores NULL Calcula el resto entero, cuando el lado derecho es un tipo que acepta valores NULL.
*? Operadores que aceptan valores NULL Multiplica los lados izquierdo y derecho, cuando el lado derecho es un tipo que acepta valores NULL.
+? Operadores que aceptan valores NULL Agrega los lados izquierdo y derecho, cuando el lado derecho es un tipo que acepta valores NULL.
-? Operadores que aceptan valores NULL Resta el lado derecho del lado izquierdo, cuando el lado derecho es un tipo que acepta valores NULL.
/? Operadores que aceptan valores NULL Divide el lado izquierdo por el lado derecho, cuando el lado derecho es un tipo que acepta valores NULL.
<? Operadores que aceptan valores NULL Calcula la operación menor que, cuando el lado derecho es un tipo que acepta valores NULL.
<>? Operadores que aceptan valores NULL Calcula la operación "no igual" cuando el lado derecho es un tipo que acepta valores NULL.
<=? Operadores que aceptan valores NULL Calcula la operación "menor o igual que" cuando el lado derecho es un tipo que acepta valores NULL.
=? Operadores que aceptan valores NULL Calcula la operación "igual" cuando el lado derecho es un tipo que acepta valores NULL.
>? Operadores que aceptan valores NULL Calcula la operación "mayor que" cuando el lado derecho es un tipo que acepta valores NULL.
>=? Operadores que aceptan valores NULL Calcula la operación "mayor o igual que" cuando el lado derecho es un tipo que acepta valores NULL.
?>=, ?>, ?<=, ?<, ?=, ?<>, ?+, ?-, , ?*?/ Operadores que aceptan valores NULL Equivalente a los operadores correspondientes sin ? prefijo, donde un tipo que acepta valores NULL está a la izquierda.
>=?, >?, <=?, <?, =?, <>?, +?, -?, , *?/? Operadores que aceptan valores NULL Equivalente a los operadores correspondientes sin ? sufijo, donde un tipo que acepta valores NULL está a la derecha.
?>=?, ?>?, ?<=?, ?<?, ?=?, ?<>?, ?+?, ?-?, , ?*??/? Operadores que aceptan valores NULL Equivalente a los operadores correspondientes sin los signos de interrogación circundantes, donde ambos lados son tipos que aceptan valores NULL.

Operadores de celda de referencia (en desuso)

En la tabla siguiente se describen los símbolos relacionados con las celdas de referencia. El uso de estos operadores genera mensajes de aviso a partir de F# 6. Para obtener más información, vea Referencia a mensajes de aviso de operación de celda.

Símbolo o operador Enlaces Descripción
! Celdas de referencia Desreferencia una celda de referencia.
:= Celdas de referencia Asigna un valor a una celda de referencia.

Precedencia de operadores

En la tabla siguiente se muestra el orden de prioridad de los operadores y otras palabras clave de expresión en F#, en orden de prioridad más baja a la prioridad más alta. También se muestra la asociatividad, si procede.

Operador Capacidad de asociación
as Derecha
when Derecha
| (canalización) Izquierda
; Derecha
let No asociativo
function, fun, , match, try No asociativo
if No asociativo
not Derecha
-> Derecha
:= Derecha
, No asociativo
or, || Izquierda
&, && Izquierda
:>, :?> Derecha
< op, >op, =, |op, &op, &, $

(incluyendo <<<, >>>, |||, &&&)
Izquierda
^ Op

(incluido ^^^)
Derecha
:: Derecha
:? No asociativo
- op, +op Se aplica a los usos de infijo de estos símbolos
* op, /op, op, %op Izquierda
** Op Derecha
f x (aplicación de función)

(incluido lazy x, assert x)
Izquierda
| (coincidencia de patrones) Derecha
operadores de prefijo (+op, -op, %, %%, &, &&!, op, op) ~ Izquierda
. Izquierda
f(x) Izquierda
f< Tipos> Izquierda

F# admite la sobrecarga del operador personalizado. Esto significa que puede definir sus propios operadores. En la tabla anterior, op puede ser cualquier secuencia válida (posiblemente vacía) de caracteres de operador, ya sea integrada o definida por el usuario. Por lo tanto, puede usar esta tabla para determinar qué secuencia de caracteres usar para un operador personalizado para lograr el nivel de prioridad deseado. Los caracteres iniciales . se omiten cuando el compilador determina la prioridad.

Consulte también