Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этой статье содержатся таблицы, описывающие символы и операторы, используемые в F# и предоставляющие краткое описание каждого из них. Некоторые символы и операторы имеют два или более записей при использовании в нескольких ролях.
Комментарий, директива компилятора и символы атрибутов
В следующей таблице описываются символы, связанные с комментариями, директивами компилятора и атрибутами.
Символ или оператор | Ссылки. | Описание |
---|---|---|
(*...*) |
Разделит комментарий, который может охватывать несколько строк. | |
// |
Указывает начало однострочного комментария. | |
/// |
XML-документация | Указывает xml-комментарий. |
# |
Директивы компилятора | Префиксы препроцессора или директивы компилятора. |
[<...>] |
Атрибуты | Разделяет атрибут. |
Символы строк и идентификаторов
В следующей таблице описываются символы, связанные со строками.
Символ или оператор | Ссылки. | Описание |
---|---|---|
" |
строки | Разделяет текстовую строку. |
@" |
строки | Запускает строку подробного текста, которая может включать обратные косые и другие символы. |
""" |
строки | Разделяет текстовую строку с тремя кавычками, которая может включать обратные косые скобки, двойные кавычки и другие символы. |
$" |
Интерполированные строки | Запускает интерполированную строку. |
' |
Литералы | Разделяет однозначный литерал. |
``...`` |
Разделяет идентификатор, который в противном случае не является юридическим идентификатором, например ключевым словом языка. | |
\ |
строки | Экранирует следующий символ; используется в символьных и строковых литералах. |
Арифметические операторы
В следующей таблице описаны арифметические операторы.
Символ или оператор | Ссылки. | Описание |
---|---|---|
+ |
Арифметические операторы |
|
- |
Арифметические операторы |
|
* |
Арифметические операторы Кортежи Единицы измерения |
|
/ |
Арифметические операторы Единицы измерения |
|
% |
Арифметические операторы | Вычисляет целочисленный оставшийся элемент. |
** |
Арифметические операторы | Вычисляет операцию экспоненциации (x ** y означает x мощность y ). |
Операторы сравнения
В следующей таблице описаны операторы сравнения.
Символ или оператор | Ссылки. | Описание |
---|---|---|
< |
Арифметические операторы | Вычисляет операцию меньше, чем операция. |
<> |
Арифметические операторы | Возвращает значение, если левая сторона не равна правой стороне; в противном случае возвращает true значение false. |
<= |
Арифметические операторы | Возвращает значение true , если левая сторона меньше или равна правой стороне; в противном случае возвращается false . |
= |
Арифметические операторы | Возвращает значение true , если левая сторона равна правой стороне; в противном случае возвращается false . |
> |
Арифметические операторы | Возвращает значение true , если левая сторона больше правой стороны; в противном случае возвращается false . |
>= |
Арифметические операторы | Возвращает значение true , если левая сторона больше или равна правой стороне; в противном случае возвращается false . |
Логические операторы
В следующей таблице описываются арифметические и логические операторы.
Символ или оператор | Ссылки. | Описание |
---|---|---|
&& |
Логические операторы |
Вычисляет логическую операцию AND. |
|| |
Логические операторы |
Вычисляет логическую операцию OR. |
битовые операторы
В следующей таблице описаны побитовые операторы.
Символ или оператор | Ссылки. | Описание |
---|---|---|
&&& |
битовые операторы | Вычисляет побитовую операцию AND. |
<<< |
битовые операторы | Сдвигает биты в количестве в левой части влево на количество битов, указанных в правой части. |
>>> |
битовые операторы | Сдвигает биты в количестве в левой части вправо на количество мест, указанных в правой части. |
^^^ |
битовые операторы | Вычисляет побитовую монопольную операцию OR. |
||| |
битовые операторы | Вычисляет побитовую операцию OR. |
~~~ |
битовые операторы | Вычисляет побитовую операцию NOT. |
Символы и операторы функций
В следующей таблице описываются операторы и символы, связанные с функциями.
Символ или оператор | Ссылки. | Описание |
---|---|---|
-> |
Функции | В выражениях функций отделяет входной шаблон от выходного выражения. |
|> |
Функции | Передает результат левой стороны функции справа (оператор пересылки канала). |
||> |
( ||> Функция )<'T1,'T2,'U> | Передает кортеж двух аргументов слева на функцию справа. |
|||> |
( |||> )<'T1,'T2,'T3,'U> Function | Передает кортеж трех аргументов слева на функцию справа. |
>> |
Функции | Создает две функции (оператор пересылки композиции). |
<< |
Функции | Создает две функции в обратном порядке; Второй выполняется сначала (оператор обратной композиции). |
<| |
Функции | Передает результат выражения справа на функцию слева (оператор обратного канала). |
<|| |
( <|| )<' Функция T1,'T2,'U> | Передает кортеж двух аргументов справа на функцию слева. |
<||| |
( <||| )<' T1,'T2,'T3,'U> Function | Передает кортеж трех аргументов справа на функцию слева. |
Символы и операторы типов
В следующей таблице описываются символы, связанные с тестами примечаний типа и типов.
Символ или оператор | Ссылки. | Описание |
---|---|---|
-> |
Функции | В типах функций аргументы и возвращаемые значения также дают результат в выражениях последовательности. |
: |
Функции | В заметке типа отделяет имя параметра или члена от его типа. |
:> |
Приведение и преобразование | Преобразует тип в тип, который выше в иерархии. |
:? |
выражения для сопоставления | Возвращает значение true , если значение соответствует указанному типу (включая, если оно является подтипом); в противном случае возвращается false (оператор теста типа). |
:?> |
Приведение и преобразование | Преобразует тип в тип, который ниже в иерархии. |
# |
Гибкие типы | При использовании с типом указывает гибкий тип, который относится к типу или любому из производных типов. |
' |
Автоматическое обобщение | Указывает параметр универсального типа. |
<...> |
Автоматическое обобщение | Параметры типа разделителей. |
^ |
Статически разрешенные параметры типа строки |
|
{} |
Класс или запись | При использовании с ключевым словом type разделяет класс или запись. Тип — это класс, когда члены объявляются или используются ключевые class слова. В противном случае это запись. |
{||} |
Анонимная запись | Обозначает анонимную запись |
Символы, используемые в выражениях подстановки элементов и среза
В следующей таблице описаны дополнительные символы, используемые в выражениях подстановки элементов и среза.
Символ или оператор | Ссылки. | Описание |
---|---|---|
. |
Участники | Обращается к члену и отделяет отдельные имена в полном имени. |
[...] или .[...] |
Массивы Индексированные свойства Выражения среза |
Индексирует массив, строку или коллекцию или принимает срез коллекции. |
Символы, используемые в кортеже, списке, массиве, выражениях единиц и шаблонах
В следующей таблице описываются символы, связанные с кортежами, списками, значениями единиц и массивами.
Символ или оператор | Ссылки. | Описание |
---|---|---|
( ) |
Тип единиц | Представляет одно значение типа единицы. |
, |
Кортежи | Отделяет элементы кортежа или параметры типа. |
:: |
Списки выражения для сопоставления |
|
@ |
Списки | Объединяет два списка. |
[...] |
Списки | Разделяет элементы списка. |
[|...|] |
Массивы | Разделяет элементы массива. |
Символы, используемые в императивных выражениях
В следующей таблице описываются дополнительные символы, используемые в выражениях.
Символ или оператор | Ссылки. | Описание |
---|---|---|
<- |
Значения | Назначает значение переменной. |
; |
Подробный синтаксис |
Отделяет выражения (в основном используется в подробном синтаксисе). Также отделяет элементы списка или полей записи. |
Дополнительные символы, используемые в последовательностях и выражениях вычислений
В следующей таблице описаны дополнительные символы, используемые в выражениях последовательностей и вычислений.
Символ или оператор | Ссылки. | Описание |
---|---|---|
-> |
последовательности | Возвращает выражение (в выражениях последовательности); do yield эквивалент ключевых слов. |
! |
Выражения вычислений | После ключевого слова указывает измененную версию поведения ключевого слова, контролируемую выражением вычисления. |
Дополнительные символы, используемые в шаблонах соответствия
В следующей таблице описываются символы, связанные с сопоставлением шаблонов.
Символ или оператор | Ссылки. | Описание |
---|---|---|
-> |
выражения для сопоставления | Используется в выражениях соответствия. |
& |
Сопоставление с шаблоном |
|
_ |
выражения для сопоставления Обобщения |
|
| |
выражения для сопоставления | Разделяет отдельные случаи соответствия, отдельные случаи объединения и значения перечисления. |
Дополнительные символы, используемые в объявлениях
В следующей таблице описываются символы, связанные с объявлениями.
Символ или оператор | Ссылки. | Описание |
---|---|---|
(|...|) |
Активные шаблоны | Разделяет активное имя шаблона. Также называются банановые клипы. |
? |
Параметры и аргументы | Указывает необязательный аргумент. |
~~ |
Перегрузка оператора | Используется для объявления перегрузки для унарного оператора отрицания. |
~- |
Перегрузка оператора | Используется для объявления перегрузки для унарного оператора минуса. |
~+ |
Перегрузка оператора | Используется для объявления перегрузки для унарного оператора плюса. |
Дополнительные символы, используемые в кавычках
В следующей таблице описываются символы, связанные с кавычками кода.
Символ или оператор | Ссылки. | Описание |
---|---|---|
<@...@> |
Кавычки кода | Разделяет типизированные кавычки кода. |
<@@...@@> |
Кавычки кода | Разделяет нетипизированные кавычки кода. |
% |
Кавычки кода | Используется для сплетирования выражений в типизированные кавычки кода. |
%% |
Кавычки кода | Используется для объединения выражений в нетипизированные кавычки кода. |
Динамические операторы подстановки
В следующей таблице описаны дополнительные символы, используемые в динамических выражениях подстановки. Они обычно не используются в обычном программировании F#, а реализации этих операторов не предоставляются в основной библиотеке F#.
Символ или оператор | Ссылки. | Описание |
---|---|---|
? |
Используется в качестве оператора для динамических вызовов методов и свойств. | |
? ... <- ... |
Используется в качестве оператора для задания динамических свойств. |
Операторы, допускающие значение NULL, в запросах
Операторы, допускающие значение NULL , определяются для использования в выражениях запросов. В следующей таблице показаны эти операторы.
Символ или оператор | Ссылки. | Описание |
---|---|---|
%? |
Операторы, допускающие значение NULL | Вычисляет остаток целочисленного числа, если справа является типом, допускаемым значением NULL. |
*? |
Операторы, допускающие значение NULL | Умножает левую и правую стороны, когда правая сторона является типом, допускаемым значением NULL. |
+? |
Операторы, допускающие значение NULL | Добавляет левую и правую стороны, если правая сторона является типом, допускаемым значением NULL. |
-? |
Операторы, допускающие значение NULL | Вычитает правую сторону с левой стороны, если справа является типом, допускающим значение NULL. |
/? |
Операторы, допускающие значение NULL | Делит левую сторону на правую сторону, если правая сторона является типом, допускаемым значением NULL. |
<? |
Операторы, допускающие значение NULL | Вычисляет меньше операции, если справа является типом, допускаемым значением NULL. |
<>? |
Операторы, допускающие значение NULL | Вычисляет операцию "не равно", если справа сторона является типом, допускаемым значением NULL. |
<=? |
Операторы, допускающие значение NULL | Вычисляет операцию "меньше или равно", если справа является типом, допускаемым значением NULL. |
=? |
Операторы, допускающие значение NULL | Вычисляет операцию "equal", если справа сторона является типом, допускаемым значением NULL. |
>? |
Операторы, допускающие значение NULL | Вычисляет операцию "больше", если справа сторона является типом, допускаемым значением NULL. |
>=? |
Операторы, допускающие значение NULL | Вычисляет операцию "больше или равно", если справа является типом, допускаемым значением NULL. |
?>= , ?> , ?<= ?< ?= ?<> ?+ ?- ?* ?/ |
Операторы, допускающие значение NULL | Эквивалентно соответствующим операторам без ? префикс, где тип, допускающий значение NULL, находится слева. |
>=? , >? , <=? <? =? <>? +? -? *? /? |
Операторы, допускающие значение NULL | Эквивалентно соответствующим операторам без ? суффикс, где тип, допускающий значение NULL, находится справа. |
?>=? , ?>? , ?<=? ?<? ?=? ?<>? ?+? ?-? ?*? ?/? |
Операторы, допускающие значение NULL | Эквивалентно соответствующим операторам без окружающих вопросительных знаков, где обе стороны являются типы, допускающие значение NULL. |
Ссылочные операторы ячеек (не рекомендуется)
В следующей таблице описываются символы, связанные с ссылочными ячейками. Использование этих операторов создает консультативные сообщения по состоянию на F# 6. Дополнительные сведения см. в справочных сообщениях об операциях ячеек.
Символ или оператор | Ссылки. | Описание |
---|---|---|
! |
Ссылочные ячейки | Разыменовывает эталонную ячейку. |
:= |
Ссылочные ячейки | Назначает значение ячейке ссылки. |
Приоритет оператора
В следующей таблице показано порядок приоритета операторов и других ключевых слов выражений в F#, чтобы от наименьшего приоритета до самого высокого приоритета. Кроме того, указана ассоциативность, если применимо.
Оператор | Ассоциативность |
---|---|
as |
Правильно |
when |
Правильно |
| (канал) |
Лево |
; |
Правильно |
let |
Неассоциативные |
function , , fun match try |
Неассоциативные |
if |
Неассоциативные |
not |
Правильно |
-> |
Правильно |
:= |
Правильно |
, |
Неассоциативные |
or , || |
Лево |
& , && |
Лево |
:> , :?> |
Правильно |
<
op, > op, op,= | op, & op, , & $ (включая <<< , , , &&& >>> ||| ) |
Лево |
^
op(включая ^^^ ) |
Правильно |
:: |
Правильно |
:? |
Не ассоциативный |
-
op, + op |
Применяется к применению infix этих символов |
*
op, op, / % op |
Лево |
**
op |
Правильно |
f x (приложение-функция)(включая lazy x , assert x ) |
Лево |
| (сопоставление шаблонов) |
Правильно |
операторы префикса (+ op, - op, %% & % , , && ! op, op, ~ op) |
Лево |
. |
Лево |
f(x) |
Лево |
f<
Типы> |
Лево |
F# поддерживает перегрузку пользовательских операторов. Это означает, что можно определить собственные операторы. В предыдущей таблице оп может быть любой допустимой (возможно, пустой) последовательности символов операторов, встроенных или определяемых пользователем. Таким образом, эту таблицу можно использовать для определения последовательности символов, используемых для пользовательского оператора для достижения требуемого уровня приоритета. Ведущие .
символы игнорируются, когда компилятор определяет приоритет.
См. также
- Справочник по языку F#
- Перегрузка оператора