F # - Операторы

Оператор - это символ, который сообщает компилятору о необходимости выполнения определенных математических или логических операций. F # богат встроенными операторами и предоставляет следующие типы операторов:

  • Арифметические операторы
  • Операторы сравнения
  • Булевы операторы
  • Побитовые операторы

Арифметические операторы

В следующей таблице показаны все арифметические операторы, поддерживаемые языком F #. Предположим, что переменная A содержит 10, а переменная B содержит 20, тогда -

Показать пример

Оператор Описание пример
+ Добавляет два операнда A + B даст 30
- Вычитает второй операнд из первого A - B даст -10
* Умножает оба операнда A * B даст 200
/ Делит числитель на де-числитель Б / А даст 2
% Оператор модуля и остаток после целочисленного деления B% A даст 0
** Оператор возведения в степень, возводит операнд в степень другого B ** A даст 20 10

Операторы сравнения

В следующей таблице показаны все операторы сравнения, поддерживаемые языком F #. Эти операторы двоичного сравнения доступны для целочисленных типов и типов с плавающей запятой. Эти операторы возвращают значения типа bool.

Предположим, что переменная A содержит 10, а переменная B содержит 20, тогда -

Показать пример

Оператор Описание пример
знак равно Проверяет, равны ли значения двух операндов или нет, если да, то условие становится истинным. (A == B) неверно.
<> Проверяет, равны ли значения двух операндов или нет, если значения не равны, условие становится истинным. (A <> B) верно.
> Проверяет, больше ли значение левого операнда, чем значение правого операнда, если да, то условие становится истинным. (A> B) неверно.
< Проверяет, меньше ли значение левого операнда, чем значение правого операнда, если да, то условие становится истинным. (A <B) верно.
> = Проверяет, больше ли значение левого операнда или равно значению правого операнда, если да, то условие становится истинным. (A> = B) неверно.
<= Проверяет, меньше ли значение левого операнда или равно значению правого операнда, если да, то условие становится истинным. (A <= B) верно.

Булевы операторы

В следующей таблице показаны все логические операторы, поддерживаемые языком F #. Предположим, что переменная A содержитtrue и переменная B имеет false, тогда -

Показать пример

Оператор Описание пример
&& Вызывается логическим оператором И. Если оба операнда не равны нулю, тогда условие становится истинным. (A && B) ложно.
|| Вызывается логическим оператором ИЛИ. Если какой-либо из двух операндов не равен нулю, условие становится истинным. (A || B) верно.
не Вызывается логическим оператором НЕ. Используется для изменения логического состояния его операнда. Если условие истинно, то оператор логического НЕ сделает ложным. not (A && B) верно.

Побитовые операторы

Поразрядные операторы работают с битами и выполняют побитовые операции. Таблицы истинности для &&& (побитовое И), ||| (поразрядное ИЛИ) и ^^^ (поразрядное исключающее ИЛИ) следующие:

Показать пример

п q p &&& q p ||| q p ^^^ q
0 0 0 0 0
0 1 0 1 1
1 1 1 1 0
1 0 0 1 1

Допустим, если A = 60; и B = 13; теперь в двоичном формате они будут такими -

А = 0011 1100

В = 0000 1101

-----------------

A &&& B = 0000 1100

А ||| В = 0011 1101

A ^^^ B = 0011 0001

~~~ A = 1100 0011

Побитовые операторы, поддерживаемые языком F #, перечислены в следующей таблице. Предположим, что переменная A содержит 60, а переменная B содержит 13, тогда -

Оператор Описание пример
&&& Двоичный оператор И копирует бит в результат, если он существует в обоих операндах. (A &&& B) даст 12, что равно 0000 1100
||| Оператор двоичного ИЛИ копирует бит, если он существует в любом из операндов. (A ||| B) даст 61, что составляет 0011 1101
^^^ Двоичный оператор XOR копирует бит, если он установлен в одном операнде, но не в обоих. (A ^^^ B) даст 49, что составляет 0011 0001
~~~ Оператор дополнения двоичных единиц является унарным и имеет эффект «переворачивания» битов. (~~~ A) даст -61, что составляет 1100 0011 в форме дополнения до 2.
<<< Оператор двоичного сдвига влево. Значение левого операнда сдвигается влево на количество битов, указанное правым операндом. <<< 2 даст 240, что составляет 1111 0000
>>> Оператор двоичного сдвига вправо. Значение левого операнда перемещается вправо на количество битов, указанное правым операндом. A >>> 2 даст 15, что равно 0000 1111

Приоритет операторов

В следующей таблице показан порядок приоритета операторов и других ключевых слов выражений на языке F # от самого низкого приоритета до самого высокого приоритета.

Показать пример

Оператор Ассоциативность
в виде Правильно
когда Правильно
| (труба) Слева
; Правильно
позволять Неассоциативный
функция, веселье, совпадение, попытка Неассоциативный
если Неассоциативный
Правильно
знак равно Правильно
, Неассоциативный
или, || Слева
&, && Слева
<op,> op, =, | op, & op Слева
&&&, |||, ^^^, ~~~, <<<, >>> Слева
^ op Правильно
:: Правильно
:?>,:? Неассоциативный
- op, + op, (двоичный) Слева
* op, / op,% op Слева
** op Правильно
fx (приложение-функция) Слева
| (совпадение с образцом) Правильно
операторы префикса (+ op, -op,%, %%, &, &&,! op, ~ op) Слева
. Слева
f (x) Слева
f <типы> Слева