Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
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 |
|
- |
Operadores aritméticos |
|
* |
Operadores aritméticos Tuplas Unidades de medida |
|
/ |
Operadores aritméticos Unidades 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 |
|
{} |
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 |
|
@ |
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 |
|
_ |
Expresiones de coincidencia Genéricos |
|
| |
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.