Лучшее руководство по Рубин Операторы в 2024 году. В этом руководстве вы можете изучить Рубин арифметические операторы,Сравнение Рубин,Оператор присваивания Рубин,Рубин параллельное назначение,Рубин Побитовые операторы,Рубин логические операторы,тернарный оператор Рубин,Оператор диапазона Рубин,Рубин определен? Оператор,Использование 1,Использование 2,Использование 3,Использование 4,Рубин оператор точка "." И двойной оператор двоеточие "::",Рубин оператор старшинство,
Рубин Операторы
Рубин поддерживает богатый набор операторов. Большинство операторов на самом деле являются вызовы методов. Например, A + B интерпретируется как. + (В), в котором переменная а + способ указывающий вызывается, б в качестве параметра в вызове метода.
Для каждого оператора (+ - * /% ** & | ^ << >> && ||), имеет соответствующий оператор присваивания (аббревиатура + = - = и т.д.).
Рубин арифметические операторы
Предположим, что переменная а значение 10, значение переменной Ь 20, то:
运算符 | 描述 | 实例 |
---|---|---|
+ | 加法 - 把运算符两边的操作数相加 | a + b 将得到 30 |
- | 减法 - 把左操作数减去右操作数 | a - b 将得到 -10 |
* | 乘法 - 把运算符两边的操作数相乘 | a * b 将得到 200 |
/ | 除法 - 把左操作数除以右操作数 | b / a 将得到 2 |
% | 求模 - 把左操作数除以右操作数,返回余数 | b % a 将得到 0 |
** | 指数 - 执行指数计算 | a**b 将得到 10 的 20 次方 |
Сравнение Рубин
Предположим, что переменная а значение 10, значение переменной Ь 20, то:
运算符 | 描述 | 实例 |
---|---|---|
== | 检查两个操作数的值是否相等,如果相等则条件为真。 | (a == b) 不为真。 |
!= | 检查两个操作数的值是否相等,如果不相等则条件为真。 | (a != b) 为真。 |
> | 检查左操作数的值是否大于右操作数的值,如果是则条件为真。 | (a > b) 不为真。 |
< | 检查左操作数的值是否小于右操作数的值,如果是则条件为真。 | (a < b) 为真。 |
>= | 检查左操作数的值是否大于或等于右操作数的值,如果是则条件为真。 | (a >= b) 不为真。 |
<= | 检查左操作数的值是否小于或等于右操作数的值,如果是则条件为真。 | (a <= b) 为真。 |
<=> | 联合比较运算符。如果第一个操作数等于第二个操作数则返回 0,如果第一个操作数大于第二个操作数则返回 1,如果第一个操作数小于第二个操作数则返回 -1。 | (a <=> b) 返回 -1。 |
=== | 用于测试case语句的 when 子句内的相等。 | (1ru.10) === 5 返回 true。 |
.eql? | 如果接收器和参数具有相同的类型和相等的值,则返回 true。 | 1 == 1.0 返回 true,但是 1.eql?(1.0) 返回 false。 |
equal? | 如果接收器和参数具有相同的对象 id,则返回 true。 | 如果 aObj 是 bObj 的副本,那么 aObj == bObj 返回 true,a.equal?bObj 返回 false,但是 a.equal?aObj 返回 true。 |
Оператор присваивания Рубин
Предположим, что переменная а значение 10, значение переменной Ь 20, то:
运算符 | 描述 | 实例 |
---|---|---|
= | 简单的赋值运算符,把右操作数的值赋给左操作数 | c = a + b 将把 a + b 的值赋给 c |
+= | 加且赋值运算符,把右操作数加上左操作数的结果赋值给左操作数 | c += a 相当于 c = c + a |
-= | 减且赋值运算符,把左操作数减去右操作数的结果赋值给左操作数 | c -= a 相当于 c = c - a |
*= | 乘且赋值运算符,把右操作数乘以左操作数的结果赋值给左操作数 | c *= a 相当于 c = c * a |
/= | 除且赋值运算符,把左操作数除以右操作数的结果赋值给左操作数 | c /= a 相当于 c = c / a |
%= | 求模且赋值运算符,求两个操作数的模赋值给左操作数 | c %= a 相当于 c = c % a |
**= | 指数且赋值运算符,执行指数计算,并赋值给左操作数 | c **= a 相当于 c = c ** a |
Рубин параллельное назначение
Рубин также поддерживает параллельные переменные назначения. Это позволяет использовать несколько переменных можно инициализировать строкой Руби кода. Например:
а = 10 б = 20 с = 30
Использование параллельного назначения быстрее Отказ от ответственности:
а, b, c = 10, 20, 30
Параллельное назначение при обмене значений двух переменных также полезны:
а, Ь = Ь, с
Рубин Побитовые операторы
Битовые операторы, действующие на бит, и по крупицам операции.
Если предположить, что а = 60, а Ь = 13, теперь в двоичном формате, который выглядит следующим образом:
а = 0011 1100
б = 0000 1101
-----------------
& B = 0000 1100
а | Ь = 0011 1101
а ^ Ь = 0011 0001
~ A = 1100 0011
В следующей таблице перечислены Рубин поддержки битовые операторы.
операторы | описание | примеров |
---|---|---|
& | Если оба они существуют в двух операндов, бинарный оператор И скопировать результат. | (А & B) будет 12, то есть, 0000 1100 |
| | Если он присутствует в любом операнде, бинарный оператор ИЛИ скопировать результат. | (A | B) будет 61, это 00111101 |
^ | Если он присутствует в одном из операнда, но не одновременно существовать в двух операндов, бинарного оператора XOR копию на результат. | (А ^ Ь) будет 49, это 00110001 |
~ | Двойки оператор дополнение является унарный оператор, А "флип" эффект положения. | (~ A) будет -61, 1100 0011,2 дополняет форму двоичного числа со знаком. |
<< | Бинарный оператор левого сдвига. Значение левого операнда для перемещения влево и вправо операнда указанное количество цифр. | а << 2 будет 240, то есть 11110000 |
>> | Бинарный оператор правого сдвига. Значение левого операнда перемещения правого операнда на заданное число битов вправо. | A >> 2 будет 15, то есть, 0000 1111 |
Рубин логические операторы
В следующей таблице перечислены поддержки Ruby логических операторов.
Предположим, что переменная а значение 10, значение переменной Ь 20, то:
运算符 | 描述 | 实例 |
---|---|---|
and | 称为逻辑与运算符。如果两个操作数都为真,则条件为真。 | (a and b) 为真。 |
or | 称为逻辑或运算符。如果两个操作数中有任意一个非零,则条件为真。 | (a or b) 为真。 |
&& | 称为逻辑与运算符。如果两个操作数都非零,则条件为真。 | (a && b) 为真。 |
|| | 称为逻辑或运算符。如果两个操作数中有任意一个非零,则条件为真。 | (a || b) 为真。 |
! | 称为逻辑非运算符。用来逆转操作数的逻辑状态。如果条件为真则逻辑非运算符将使其为假。 | !(a && b) 为假。 |
not | 称为逻辑非运算符。用来逆转操作数的逻辑状态。如果条件为真则逻辑非运算符将使其为假。 | not(a && b) 为假。 |
тернарный оператор Рубин
Существует более чем одно действие называется тернарный оператор. Первое значение вычисления истинности выражения, а затем решил реализовать два сзади в заявлении, на основании результата. Условный оператор имеет следующий синтаксис:
运算符 | 描述 | 实例 |
---|---|---|
? : | 条件表达式 | 如果条件为真 ? 则值为 X : 否则值为 Y |
Оператор диапазона Рубин
В Ruby, последовательность используется для создания серии последовательных значения диапазона - содержит начальное значение, конечное значение (при наличии) и значения между ними.
В Ruby, эти последовательности является использование "ru" и "ru." операторов диапазона для создания. Диапазон содержит две формы создают начальные и конечные значения, диапазон трех, чтобы создать форму, которая содержит только конечное значение Начальное значение не входит в стоимость.
运算符 | 描述 | 实例 |
---|---|---|
ru | 创建一个从开始点到结束点的范围(包含结束点) | 1ru10 创建从 1 到 10 的范围 |
ru. | 创建一个从开始点到结束点的范围(不包含结束点) | 1ru.10 创建从 1 到 9 的范围 |
Рубин определен? Оператор
определен? это специальный оператор, будь то в форме вызова метода передать выражение суждение определяется. Она возвращает строковое выражение описания, если выражение неопределенные возвращаетноль.
Ниже приведены различные операторы, определенные использования ?:
Использование 1
определяется? переменной # Если переменная была инициализирована Правда,
Например:
Foo = 42 определен? Foo # => "локальной переменной" определяется? $ _ # => "глобальной переменной" определяется? бар # => ноль (не определено)
Использование 2
определяется? method_call # Если метод был определен, True
Например:
определяется? ставит # "метод" => определяемые? путы (бар) # => ноль (не определено здесь бар) определяется? распаковывать # => ноль (не определено здесь)
Использование 3
# Если метод может быть вызван в качестве привилегированного пользователя существует, то правда определяется? супер
Например:
определяется? супер # => "супер" (если можно назвать) определяется? супер # => ноль (если не ссылаться)
Использование 4
определена? выход # Если блок кода прошел Правда,
Например:
определена? Выход # => "Выход" (если передача блока) определена? выход # => ноль (если не передать блок)
Рубин оператор точка "." И двойной оператор двоеточие "::"
Вы можете добавить имя модуля и подчеркивание, чтобы вызвать метод модуля перед именем метода. Вы можете использовать имя модуля и два двоеточия для ссылки на константу.
:: Является ли унарный оператор, позволяя константы, методы экземпляра и методы класса , определенные в классе или модуле , который можно получить в любом месте в классе или модуля с внешней стороны.
Помните: В Ruby, классы и методы могут быть также использованы в качестве константы.
Вам нужно всего лишь добавить перед именем константы выражения:: префикс, чтобы вернуться к соответствующему классу или модуля объекта.
Если выражение префикс не используется, класс мастер-объекта по умолчанию.
Вот два примера:
MR_COUNT = 0 # Класс объекта определяется в основных констант модуля Foo MR_COUNT = 0 :: MR_COUNT = 1 #, чтобы установить глобальный счетчик 1 MR_COUNT = 2 # установить локальный счетчик 2 конец ставит MR_COUNT # Это глобальная константа ставит Foo :: MR_COUNT # Что такое "Foo" локальные константы
Второй экземпляр:
CONST = 'там' класс Inside_one CONST = Proc { 'там'} защиту where_is_my_CONST :: CONST + 'внутри одного' конец конец класс Inside_two CONST = 'внутри двух' защиту where_is_my_CONST CONST конец конец ставит Inside_one.new.where_is_my_CONST ставит Inside_two.new.where_is_my_CONST ставит Object :: CONST + Inside_two :: CONST ставит Inside_two :: CONST + ФИКСИР ставит Inside_one :: CONST ставит Inside_one :: CONST.call + Inside_two :: CONST
Рубин оператор старшинство
В следующей таблице на основе приоритета оператора перечислены все операторы.
方法 | 运算符 | 描述 |
---|---|---|
是 | :: | 常量解析运算符 |
是 | [ ] [ ]= | 元素引用、元素集合 |
是 | ** | 指数 |
是 | ! ~ + - | 非、补、一元加、一元减(最后两个的方法名为 +@ 和 -@) |
是 | * / % | 乘法、除法、求模 |
是 | + - | 加法和减法 |
是 | >> << | 位右移、位左移 |
是 | & | 位与 |
是 | ^ | | 位异或、位或 |
是 | <= < > >= | 比较运算符 |
是 | <=> == === != =~ !~ | 相等和模式匹配运算符(!= 和 !~ 不能被定义为方法) |
&& | 逻辑与 | |
|| | 逻辑或 | |
ru ru. | 范围(包含、不包含) | |
? : | 三元 if-then-else | |
= %= { /= -= += |= &= >>= <<= *= &&= ||= **= | 赋值 | |
defined? | 检查指定符号是否已定义 | |
not | 逻辑否定 | |
or and | 逻辑组成 |
Примечание: В столбце идентифицируется как метод оператора на самом деле метод, он может быть перегружена.