Операторы в Scala
#ScalaОператор — это символ, который представляет операцию, которая должна быть выполнена с одним или несколькими операндами. Операторы являются основой любого языка программирования. Операторы позволяют нам выполнять различные виды операций над операндами. В Scala используются следующие типы операторов:
Арифметические Операторы
Они используются для выполнения арифметических / математических операций над операндами.
- Оператор сложения (+) добавляет два операнда. Например, х + у .
- Оператор вычитания (-) вычитает два операнда. Например, ху .
- Оператор умножения (*) умножает два операнда. Например, х * у .
- Оператор деления (/) делит первый операнд на второй. Например, х / у .
- Оператор модуля (%) возвращает остаток, когда первый операнд делится на второй. Например, х% у .
- Оператор экспоненты (**) возвращает экспоненту (степень) операндов. Например, х ** у .
Пример:
// Scala программа для демонстрации
// Операторы Airthmetic
object Arithop
{
def main(args: Array[String])
{
// переменные
var a = 50;
var b = 30;
// Дополнение
println("Addition of a + b = " + (a + b));
// Вычитание
println("Subtraction of a - b = " + (a - b));
// Умножение
println("Multiplication of a * b = " + (a * b));
// Отдел
println("Division of a / b = " + (a / b));
// Модуль
println("Modulus of a % b = " + (a % b));
}
}
Выход:
Addition of a + b = 80 Subtraction of a - b = 20 Multiplication of a * b = 1500 Division of a / b = 1 Modulus of a % b = 20
Реляционные операторы
Реляционные операторы или операторы сравнения используются для сравнения двух значений. Давайте посмотрим их один за другим:
- Оператор равно (==) проверяет, равны ли два заданных операнда или нет. Если так, это возвращает истину. В противном случае возвращается false. Например, 5 == 5 вернет true.
- Оператор Not Equal To (! =) Проверяет, равны ли два заданных операнда или нет. Если нет, он возвращает истину. В противном случае возвращается false. Это точное логическое дополнение оператора '==' . Например, 5! = 5 вернет false.
- Оператор Greater Than (>) проверяет, больше ли первый операнд, чем второй операнд. Если так, это возвращает истину. В противном случае возвращается false. Например, 6> 5 вернет истину.
- Оператор Less than (<) проверяет, меньше ли первый операнд, чем второй операнд. Если так, это возвращает истину. В противном случае возвращается false. Например, 6 <5 вернет false.
- Оператор «Больше чем равно» (> =) проверяет, больше или равен первый операнд второй операнд. Если так, это возвращает истину. В противном случае возвращается false. Например, 5> = 5 вернет истину.
- Оператор Less Than Equal To (<=) проверяет, меньше или равен первый операнд второй операнд. Если так, это возвращает истину. В противном случае возвращается false. Например, 5 <= 5 также вернет true.
Пример:
// Scala программа для демонстрации
// реляционные операторы
object Relop
{
def main(args: Array[String])
{
// переменные
var a = 50;
var b = 30;
// равно оператору
println("Equality of a == b is : " + (a == b));
// Не равно оператору
println("Not Equals of a != b is : " + (a != b));
// Больше чем оператор
println("Greater than of a > b is : " + (a > b));
// Меньше чем оператор
println("Lesser than of a < b is : " + (a < b));
// Больше чем равно оператору
println("Greater than or Equal to of a >= b is : " + (a >= b));
// Меньше, чем равно оператору
println("Lesser than or Equal to of a <= b is : " + (a <= b));
}
}
Выход:
Equality of a == b is : false Not Equals of a != b is : true Greater than of a > b is : true Lesser than of a = b is : true Lesser than or Equal to of a <= b is : false
Логические Операторы
Они используются для объединения двух или более условий / ограничений или для дополнения оценки исходного рассматриваемого условия. Они описаны ниже:
- Логический оператор AND (&&) возвращает true, когда оба рассматриваемых условия выполнены. В противном случае возвращается false. Использование « и » является альтернативой оператора &&. Например, a && b возвращает true, когда и a, и b имеют значение true (т. Е. Не ноль).
- Логический оператор OR (||) возвращает true, если выполняется одно (или оба) из рассматриваемых условий. В противном случае возвращается false. Использование « или » является альтернативой для || оператор. Например, || b возвращает true, если один из a или b равен true (т. е. не равен нулю). Конечно, он возвращает истину, когда и a, и b верны.
- Логический оператор NOT (!) Возвращает true, рассматриваемое условие не выполнено. В противном случае возвращается false. Использование « не » является альтернативой для! оператор. Например ,! True возвращает false.
Пример:
// Scala программа для демонстрации
// Логические операторы
object Logop
{
def main(args: Array[String])
{
// переменные
var a = false
var b = true
// логический оператор NOT
println("Logical Not of !(a && b) = " + !(a && b));
// логический оператор ИЛИ
println("Logical Or of a || b = " + (a || b));
// логический оператор И
println("Logical And of a && b = " + (a && b));
}
}
Выход:
Logical Not of !(a && b) = true Logical Or of a || b = true Logical And of a && b = false
Операторы присваивания
Операторы присваивания используются для присвоения значения переменной. Левый операнд оператора присваивания является переменной, а правый операнд оператора присваивания является значением. Значение справа должно быть того же типа данных, что и переменная слева, иначе компилятор выдаст ошибку.
Различные типы операторов присваивания показаны ниже:
- Оператор Simple Assignment (=) является самым простым оператором присваивания. Этот оператор используется для присвоения значения справа переменной слева.
- Оператор Add AND Assignment (+ =) используется для добавления левого операнда с правым операндом и последующего присвоения его переменной слева.
- Оператор Subtract AND Assignment (- =) используется для вычитания левого операнда с правым операндом и последующего присвоения его переменной слева.
- Оператор умножения И Назначение (* =) используется для умножения левого операнда на правый операнд и последующего присвоения его переменной слева.
- Оператор Divide AND Assignment (/ =) используется для деления левого операнда на правый операнд и последующего присвоения его переменной слева.
- Оператор Modulus AND Assignment (% =) используется для назначения по модулю левого операнда с правым операндом и последующего присвоения его переменной слева.
- Оператор Exponent AND Assignment (** =) используется для увеличения мощности левого операнда до правого операнда и присвоения его переменной слева.
- Оператор сдвига влево и присвоения (<< =) используется для выполнения двоичного сдвига влево левого операнда с правым операндом и присвоения его переменной слева.
- Оператор правого сдвига И присвоения (>> =) используется для выполнения двоичного правого сдвига левого операнда с правым операндом и присвоения его переменной слева.
- Битовый оператор И Назначение (& =) используется для выполнения побитового И левого операнда с правым операндом и присвоения его переменной слева.
- Битовое исключающее ИЛИ и оператор присваивания (^ =) используется для выполнения побитового исключающего ИЛИ левого операнда с правым операндом и присвоения его переменной слева.
- Побитовое включение ИЛИ и оператор присваивания (| =) используется для выполнения побитового включения ИЛИ левого операнда с правым операндом и присвоения его переменной слева.
Пример:
// Scala программа для демонстрации
// Операторы присваивания
object Assignop
{
def main(args: Array[String])
{
// переменные
var a = 50;
var b = 40;
var c = 0;
// простое сложение
c = a + b;
println("simple addition: c= a + b = " + c);
// Добавить И назначение
c += a;
println("Add and assignment of c += a = " + c);
// Вычитаем И присваиваем
c -= a;
println("Subtract and assignment of c -= a = " + c);
// Умножаем И И присваиваем
c *= a;
println("Multiplication and assignment of c *= a = " + c);
// Делим И присваиваем
c /= a;
println("Division and assignment of c /= a = " + c);
// Модули И назначение
c %= a;
println("Modulus and assignment of c %= a = " + c);
// сдвиг влево и присваивание
c <<= 3;
println("Left shift and assignment of c <<= 3 = " + c);
// Сдвиг вправо и назначение
c >>= 3;
println("Right shift and assignment of c >>= 3 = " + c);
// Побитовое И присваивание
c &= a;
println("Bitwise And assignment of c &= 3 = " + c);
// Побитовое исключающее ИЛИ и присваивание
c ^= a;
println("Bitwise Xor and assignment of c ^= a = " + c);
// Побитовое ИЛИ и присваивание
c |= a;
println("Bitwise Or and assignment of c |= a = " + c);
}
}
Выход:
simple addition: c= a + b = 90 Add and assignment of c += a = 140 Subtract and assignment of c -= a = 90 Multiplication and assignment of c *= a = 4500 Division and assignment of c /= a = 90 Modulus and assignment of c %= a = 40 Left shift and assignment of c >= 3 = 40 Bitwise And assignment of c &= 3 = 32 Bitwise Xor and assignment of c ^= a = 18 Bitwise Or and assignment of c |= a = 50
Битовые операторы
В Scala есть 7 побитовых операторов, которые работают на битовом уровне или используются для побитовых операций. Ниже приведены побитовые операторы:
- Побитовое И (&): принимает два числа как операнды и делает И для каждого бита двух чисел. Результат И равен 1, только если оба бита равны 1.
- Побитовое ИЛИ (|): принимает два числа в качестве операндов и выполняет ИЛИ для каждого бита двух чисел. Результат ИЛИ равен 1, любой из двух битов равен 1.
- Побитовое XOR (^): принимает два числа в качестве операндов и делает XOR для каждого бита двух чисел. Результат XOR равен 1, если два бита различны.
- Битовый сдвиг влево (<<): принимает два числа, сдвигает влево биты первого операнда, второй операнд определяет количество мест для сдвига.
- Битовый сдвиг вправо (>>): принимает два числа, сдвиг вправо битов первого операнда, второй операнд определяет количество мест для сдвига.
- Побитовые (Complement) (~): этот оператор принимает одно число и используется для выполнения операции 8-битного дополнения.
- Битовое смещение правой нулевой заливки (>>>): В операторе смещения правой нулевой заливки левый операнд смещается вправо на количество битов, указанное правым операндом, а сдвинутые значения заполняются нулями.
Пример:
// Scala программа для демонстрации
// побитовые операторы
object Bitop
{
def main(args: Array[String])
{
// переменные
var a = 20;
var b = 18;
var c = 0;
// Битовый оператор И
c = a & b;
println("Bitwise And of a & b = " + c);
// побитовый оператор ИЛИ
c = a | b;
println("Bitwise Or of a | b = " + c);
// Побитовый оператор XOR
c = a ^ b;
println("Bitwise Xor of a ^ b = " + c);
// Побитовый оператор дополнения
c = ~a;
println("Bitwise Ones Complement of ~a = " + c);
// битовый оператор сдвига влево
c = a << 3;
println("Bitwise Left Shift of a << 3 = " + c);
// Битовый оператор смещения вправо
c = a >> 3;
println("Bitwise Right Shift of a >> 3 = " + c);
// битовый сдвиг вправо к нулю
c = a >>> 4;
println("Bitwise Shift Right a >>> 4 = " + c);
}
}
Выход:
Bitwise And of a & b = 16 Bitwise Or of a | b = 22 Bitwise Xor of a ^ b = 6 Bitwise Ones Complement of ~a = -21 Bitwise Left Shift of a > 3 = 2 Bitwise Shift Right a >>> 4 = 1