Все нужно проектировать сверху вниз, за исключением фундамента, с которого нужно начинать. (Алан.Дж.Перлис)

Ruby – Операторы

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (1 оценок, среднее: 5,00 из 5)
Загрузка...
Язык программирования Ruby
Ruby поддерживает богатый набор операторов, как и следовало ожидать от современного языка. Большинство операторов – это фактически вызовы методов. Например, a + b интерпретируется как. + (B), где метод + в объекте, на который ссылается переменная a, вызывается с аргументом b .

Для каждого оператора (+ – * /% ** & | ^ << >> && ||) существует соответствующая форма оператора сокращенного присваивания (+ = – = и т. д.).

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

Предположим, что переменная a имеет значение 10, а переменная b имеет значение 20, тогда:

операторОписаниепример
+Дополнение – добавляет значения по обе стороны оператора.a + b даст 30
Вычитание – вычитает правый операнд из левого операнда.a – b даст -10
*Умножение – умножает значения по обе стороны оператора.a * b даст 200
/Разделение – делит левый операнд правой рукой.b / a даст 2
%Модуль – делит левый операнд правой рукой и возвращает остаток.b % a даст 0
**Exponent – Выполняет экспоненциальный (энергетический) расчет для операторов.a ** b даст 10 мощности 20

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

Предположим, что переменная a имеет значение 10, а переменная b имеет значение 20, тогда –

операторОписаниепример
==Проверяет, равно ли значение двух операндов или нет, если да, то условие становится истинным.(a == b) не соответствует действительности.
!=Проверяет, равно ли значение двух операндов или нет, если значения не равны, тогда условие становится истинным.(a! = b) истинно.
>Проверяет, превышает ли значение левого операнда значение правого операнда, если да, тогда условие становится истинным.(a> b) неверно.
<Проверяет, является ли значение левого операнда меньше значения правильного операнда, если да, тогда условие становится истинным.(a <b) истинно.
> =Проверяет, превышает ли значение левого операнда значение правого операнда, если да, тогда условие становится истинным.(a> = b) неверно.
<=Проверяет, является ли значение левого операнда меньше или равно значению правильного операнда, если да, тогда условие становится истинным.(a <= b) истинно.
<=>Комбинированный оператор сравнения. Возвращает 0, если первый операнд равен второму, 1, если первый операнд больше второго и -1, если первый операнд меньше второго.(a <=> b) возвращает -1.
===Используется для проверки равенства внутри предложения whencase .(1 … 10) === 5 возвращает true.
.eql?Истина, если приемник и аргумент имеют одинаковый тип и равные значения.1 == 1.0 возвращает true, но 1.eql? (1.0) является ложным.
equal?Истина, если приемник и аргумент имеют одинаковый идентификатор объекта.если aObj является дубликатом bObj, тогда aObj == bObj истинно, a.equal? ​​bObj является ложным, но a.equal? ​​aObj истинно.

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

Предположим, что переменная a имеет значение 10, а переменная b имеет значение 20, тогда:

операторОписаниепример
=Простой оператор присваивания, присваивает значения из правых операндов в левый операнд.c = a + b присваивает значение a + b в c
+=Оператор Add AND присваивает, добавляет правый операнд в левый операнд и присваивает результат левому операнду.c + = a эквивалентно c = c + a
-=Вычитает и присваивает оператор, вычитает правый операнд из левого операнда и присваивает результат левому операнду.с – = а эквивалентно с = с – а
*=Оператор умножения и присваивания, умножает правый операнд на левый операнд и присваивает результат левому операнду.c * = a эквивалентно c = c * a
/=Оператор Divide AND присваивает, делит левый операнд на правый операнд и присваивает результат левому операнду.c / = a эквивалентно c = c / a
%=Оператор модуля и присваивания, принимает модуль с использованием двух операндов и присваивает результат левому операнду.c% = a эквивалентно c = c% a
**=Оператор Exponent AND присваивает операторам экспоненциальный (энергетический) расчет и присваивает значение левому операнду.c ** = a эквивалентно c = c ** a

Параллельное назначение Ruby

Ruby также поддерживает параллельное назначение переменных. Это позволяет инициализировать несколько переменных с помощью одной строки кода Ruby. Например:

 

Это можно более быстро объявить, используя параллельное назначение:

 

Параллельное назначение также полезно для замены значений, удерживаемых в двух переменных:

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

Побитовый оператор работает с битами и выполняет побитовую операцию.

Предположим, что a = 60; и b = 13; теперь в двоичном формате они будут выглядеть следующим образом:

Язык Ruby поддерживает следующими побитовые операторы.

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

Логические операторы в Ruby

Язык Ruby поддерживает следующие логические операторы

Предположим, что переменная a имеет значение 10, а переменная b имеет значение 20, тогда:

операторОписаниепример
andВызывается логическим оператором AND. Если оба операнда верны, тогда условие становится истинным.(a и b) верно.
orВызывается логическим оператором ИЛИ. Если какой-либо из двух операндов не равен нулю, то условие становится истинным.(a или b) истинно.
&&Вызывается логическим оператором AND. Если оба операнда не равны нулю, условие становится истинным.(a && b) истинно.
||Вызывается логическим оператором ИЛИ. Если какой-либо из двух операндов не равен нулю, то условие становится истинным.(a || b) истинно.
!Вызывается логическим оператором NOT. Используется для изменения логического состояния операнда. Если условие истинно, то логический оператор NOT сделает ложным.! (a && b) является ложным.
notВызывается логическим оператором NOT. Используется для изменения логического состояния операнда. Если условие истинно, то логический оператор NOT сделает ложным.not (a && b) является ложным.

Тройной оператор Ruby

Существует еще один оператор, называемый Тернарный оператор. Сначала он вычисляет выражение для истинного или ложного значения и затем выполняет одно из двух заданных операторов в зависимости от результата оценки. Условный оператор имеет этот синтаксис:

операторОписаниепример
? :Условное выражениеЕсли условие верно? Тогда значение X: В противном случае значение Y

Операторы диапазона в Ruby

Диапазоны последовательностей в Ruby используются для создания диапазона последовательных значений, состоящих из начального значения, конечного значения и диапазона значений между ними.

В Ruby эти последовательности создаются с использованием операторов диапазона «..» и «…». Двухточечная форма создает инклюзивный диапазон, а трехточечная форма создает диапазон, исключающий указанное высокое значение.

операторОписаниепример
..Создает диапазон от начальной до конечной точки включительно.1..10 Создает диапазон от 1 до 10 включительно.
Создает диапазон от начальной точки до конечной точки.1 … 10 Создает диапазон от 1 до 9.

Операторы defined? в Ruby

defined? является специальным оператором, который принимает форму вызова метода, чтобы определить, определено ли переданное выражение. Он возвращает строку описания выражения или nil, если выражение не определено.

Существуют различные варианты оператора defined?

Использование 1

 

Например

 

Использование 2

 

Например

 

Использование 3

 

Например

 

Использование 4

 

Например

 

Операторы Dot “.” и Double Colon “::” в Ruby

Вы вызываете метод модуля, вызывая его имя с именем модуля и периодом, и ссылаетесь на константу, используя имя модуля и два двоеточия.

:: является унарным оператором, который позволяет: константы, методы экземпляра и методы класса , определенные внутри класса или модуля, чтобы получить доступ из любой точки мира за пределами класса или модуля.

Помните, что в Ruby классы и методы также могут считаться константами.

Вам нужно просто префикс :: Const_name с выражением, которое возвращает соответствующий класс или объект модуля.

Если выражение префикса не используется, по умолчанию используется основной класс Object.

Вот два примера:

 

Второй пример

 

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

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

методоператорОписание
да::Оператор с постоянным разрешением
да[ ] [ ]=Ссылка на элемент, набор элементов
да**Экспоненциация (повышение до власти)
да! ~ + –Не, дополнение, унарный плюс и минус (имена методов для последних двух – + @ и – @)
да* /%Умножьте, разделите и по модулю
да+ –Сложение и вычитание
да>> <<Правый и левый побитовый сдвиг
да&Побитовое “AND”
да^ |Побитовое эксклюзивное OR 'и регулярное OR’
да<= <>> =Операторы сравнения
да<=> == ===! = = ~ !~Операторы равенства и соответствия шаблонов (! = И! ~ Не могут быть определены как методы)
&&Логический ‘AND’
||Логический ‘OR’
.. …Диапазон (включительно и эксклюзивно)
? :Тройное if-then-else
= %= { /= -= += |= &= >>= <<= *= &&= ||= **=присваивание
defined?Проверьте, установлен ли указанный символ
notЛогическое отрицание
or andЛогическая композиция
Примечание
Операторы с Yes в столбце метода являются фактически методами и как таковые могут быть переопределены.

 

 

Читайте также

    Добавить комментарий

    Войти с помощью: 

    Ваш e-mail не будет опубликован. Обязательные поля помечены *

    Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.

    Простая логическая игра "Поймай кота". Задача игры окружить кота точками так, чтобы он не смог убежать с поля. Постигла неудача - начни игру снова!

    Заполните форму и наш менеджер перезвонит Вам в самое ближайшее время!

    badge
    Обратный звонок 1
    Отправить
    galka

    Спасибо! Ваша заявка принята

    close
    galka

    Спасибо! Ваша заявка принята

    close