Latest web development tutorials

Ruby-Operatoren

Rubin unterstützt eine breite Palette von Operatoren. Die meisten Betreiber sind tatsächlich Methodenaufrufe. Zum Beispiel ist A + B als interpretiert. + (B), wobei die Variable a + Zeige Methode aufgerufen wird, b als Parameter in dem Methodenaufruf.

Für jeden Operator (+ - * /% ** & | ^ << >> && ||) hat eine entsprechende Abkürzung Zuweisungsoperator (+ = - = etc.).

Ruby-arithmetischen Operatoren

Angenommen, der Variablen einen Wert von 10, die Variable b-Wert von 20, dann:

运算符描述实例
+加法 - 把运算符两边的操作数相加 a + b 将得到 30
-减法 - 把左操作数减去右操作数 a - b 将得到 -10
*乘法 - 把运算符两边的操作数相乘 a * b 将得到 200
/除法 - 把左操作数除以右操作数 b / a 将得到 2
%求模 - 把左操作数除以右操作数,返回余数 b % a 将得到 0
**指数 - 执行指数计算 a**b 将得到 10 的 20 次方

Ruby-Vergleich

Angenommen, der Variablen einen Wert von 10, die Variable b-Wert von 20, dann:

运算符描述实例
==检查两个操作数的值是否相等,如果相等则条件为真。 (a == b) 不为真。
!=检查两个操作数的值是否相等,如果不相等则条件为真。 (a != b) 为真。
>检查左操作数的值是否大于右操作数的值,如果是则条件为真。 (a > b) 不为真。
<检查左操作数的值是否小于右操作数的值,如果是则条件为真。 (a < b) 为真。
>=检查左操作数的值是否大于或等于右操作数的值,如果是则条件为真。 (a >= b) 不为真。
<=检查左操作数的值是否小于或等于右操作数的值,如果是则条件为真。 (a <= b) 为真。
<=>联合比较运算符。如果第一个操作数等于第二个操作数则返回 0,如果第一个操作数大于第二个操作数则返回 1,如果第一个操作数小于第二个操作数则返回 -1。 (a <=> b) 返回 -1。
===用于测试case语句的 when 子句内的相等。 (1...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。

Ruby-Zuweisungsoperator

Angenommen, der Variablen einen Wert von 10, die Variable b-Wert von 20, dann:

运算符描述实例
=简单的赋值运算符,把右操作数的值赋给左操作数 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

Rubin parallel Zuordnung

Rubin unterstützt auch parallel Zuweisung Variablen. Dadurch können mehrere Variablen können durch eine Linie von Ruby-Code initialisiert werden. Zum Beispiel:

a = 10
b = 20
c = 30

Mit parallelen Zuordnung schneller Haftungsausschluss:

a, b, c = 10, 20, 30

Parallel Zuordnung, wenn die Werte von zwei Variablen Austausch sind auch nützlich:

a, b = b, c

Ruby-Bit-Operatoren

Bitoperatoren auf dem Bohrmeißel wirkenden, und nach und nach Betrieb.

Wird angenommen, dass a = 60 und b = 13, jetzt in ein binäres Format, das wie folgt ist:

a = 0011 1100

b = 0000 1101

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

a & b = 0000 1100

a | b = 0011 1101

a ^ b = 0011 0001

~ A = 1100 0011

Die folgende Tabelle listet die Ruby-Bit-Operatoren zu unterstützen.

Die Betreiber Beschreibung Beispiele
& Wenn beide in zwei Operanden vorhanden sind, um die binäre AND-Operator ein Ergebnis kopieren. (A & B) wird 12 sein, das heißt, 0000 1100
| Wenn in beiden Operanden, auf die binäre ODER-Operator ein Ergebnis kopieren. (A | b) 61 sein wird, ist 00.111.101
^ Wenn in einer der Operanden, aber nicht gleichzeitig in zwei Operanden existieren, binäre XOR-Operator zu dem Ergebnis, eine Kopie. (A ^ b) wird 49 sein, ist 00.110.001
~ Zweier-Komplement-Operator ist ein unärer Operator, ein "Flip" Positionseffekt. (~ A) -61 sein, 1100 0011,2 wird als binäre Zahl mit Vorzeichen ergänzen.
<< Binary linke Shift-Operator. Der Wert des linken Operanden, um nach links und rechts Operand die angegebene Anzahl von Ziffern. ein << 2 wird 240 sein, ist, dass 11.110.000
>> Binary rechte Shift-Operator. Der Wert des linken Operanden nach rechts bewegen Operand die angegebene Anzahl von Bits nach rechts. a >> 2 wird 15 sein, das heißt, 0000 1111

Ruby-logischen Operatoren

Die folgende Tabelle listet die Ruby-logischen Operatoren zu unterstützen.

Angenommen, der Variablen einen Wert von 10, die Variable b-Wert von 20, dann:

运算符描述实例
and称为逻辑与运算符。如果两个操作数都为真,则条件为真。 (a and b) 为真。
or称为逻辑或运算符。如果两个操作数中有任意一个非零,则条件为真。 (a or b) 为真。
&&称为逻辑与运算符。如果两个操作数都非零,则条件为真。 (a && b) 为真。
||称为逻辑或运算符。如果两个操作数中有任意一个非零,则条件为真。 (a || b) 为真。
!称为逻辑非运算符。用来逆转操作数的逻辑状态。如果条件为真则逻辑非运算符将使其为假。 !(a && b) 为假。
not称为逻辑非运算符。用来逆转操作数的逻辑状态。如果条件为真则逻辑非运算符将使其为假。 not(a && b) 为假。

Ruby-ternäre Operator

Es gibt mehr als eine Aktion ist ternäre Operator genannt. Der erste Berechnungswahrheitswert des Ausdrucks, und dann beschlossen, zwei in einer Erklärung hinter die Umsetzung auf der Basis des Ergebnisses. Bedingte Operator hat die folgende Syntax:

运算符描述实例
? :条件表达式如果条件为真 ? 则值为 X : 否则值为 Y

Ruby Range Operator

In Ruby wird die Sequenz verwendet, um eine Reihe von aufeinanderfolgenden Bereichswert zu schaffen - enthält Wert, Endwert (je nach Verfügbarkeit) und Werte zwischen ihnen beginnen.

In Ruby, diese Sequenzen ist die Verwendung von ".." und "..." Bereich Betreiber zu erstellen. Bereich enthält zwei Formulare erstellen Anfangs- und Endwert, den Bereich der drei, ein Formular zu erstellen, die nur der Startwert Endwert enthält, wird nicht berücksichtigt.

运算符描述实例
..创建一个从开始点到结束点的范围(包含结束点) 1..10 创建从 1 到 10 的范围
...创建一个从开始点到结束点的范围(不包含结束点) 1...10 创建从 1 到 9 的范围

Rubin definiert? Operator

definiert? ist ein spezieller Operator, ob von einem Methodenaufruf in Form Beurteilungsausdruck passieren definiert. Es gibt die Beschreibung String - Ausdruck, wenn der Ausdruck nicht definiert RenditeNull ist.

Im Folgenden sind die verschiedenen Betreiber Nutzung definiert ?:

Verwendung 1

definiert? Variable # Ist die Variable TRUE initialisiert wurde,

Zum Beispiel:

foo = 42
definiert? foo # => "local-Variable"
definiert? $ _ # => "global-Variable"
definiert? bar # => nil (undefined)

Verwendung 2

definiert? method_call # Wenn die Methode definiert wurde, True

Zum Beispiel:

definiert? puts "Methode" # =>
definiert? puts (bar) # => nil (undefined hier bar)
definiert? auspacken # => nil (undefined hier)

Verwendung 3

# Wenn das Verfahren als Superuser aufgerufen werden existiert, dann Wahr
definiert? Super

Zum Beispiel:

definiert? Super # => "super" (wenn aufgerufen werden kann)
definiert? Super # => nil (wenn auch nicht geltend gemacht werden)

Verwendung 4

definiert? Ausbeute # Wenn der Block-Code übergeben Es stimmt,

Zum Beispiel:

definiert? Ausbeute # => "Ausbeute" (wenn der Transferblock)
definiert? Ausbeute # => nil (wenn nicht sogar Block passieren)

Ruby-Punkt-Operator "." Und die doppelte Doppelpunkt-Operator "::"

Sie können den Namen des Moduls hinzufügen und unterstreichen ein Modul Verfahren vor dem Methodennamen zu nennen. Sie können den Namen des Moduls und zwei Doppelpunkte verwenden, um eine Konstante zu verweisen.

:: Ist ein unärer Operator, so dass Konstanten, Instanzmethoden und Klassenmethoden in der Klasse oder des Moduls definiert , die überall in der Klasse oder des Moduls von außen zugegriffen werden kann.

Denken Sie daran:In Ruby, Klassen und Methoden können auch als Konstante verwendet werden.

Sie müssen nur vor dem Namen des konstanten Ausdruck:: Präfix hinzuzufügen, in die entsprechende Klasse oder Modulobjekt zurückzukehren.

Wenn das Präfix Ausdruck nicht verwendet wird, Objektklasse der Standard-Master.

Hier sind zwei Beispiele:

MR_COUNT = 0 # Objektklasse in der Haupt Konstanten Modul Foo definiert
  MR_COUNT = 0
  :: MR_COUNT = 1 #, um den globalen Zählung 1
  MR_COUNT = 2 # setzt die lokale Zählung von 2
Ende
MR_COUNT setzt # Dies ist eine globale Konstante setzt Foo :: MR_COUNT # Was "Foo" lokale Konstanten 

Zweites Beispiel:

CONST = "da draußen"
Klasse Inside_one
   CONST = proc { 'drin'}
   def where_is_my_CONST
      :: CONST + 'innerhalb eines'
   Ende
Ende
Klasse Inside_two
   CONST = 'in zwei'
   def where_is_my_CONST
      CONST
   Ende
Ende
setzt Inside_one.new.where_is_my_CONST
setzt Inside_two.new.where_is_my_CONST
Objekt setzt :: CONST + Inside_two :: CONST
Inside_two setzt :: CONST + CONST
Inside_one setzt :: CONST
Inside_one setzt :: CONST.call + Inside_two :: CONST

Ruby-Operator Vorrang

Die folgende Tabelle auf der Prioritäts Betreiber Basierend listet alle Operatoren.

方法运算符描述
:: 常量解析运算符
[ ] [ ]= 元素引用、元素集合
** 指数
! ~ + - 非、补、一元加、一元减(最后两个的方法名为 +@ 和 -@)
* / % 乘法、除法、求模
+ - 加法和减法
>> << 位右移、位左移
& 位与
^ | 位异或、位或
<= < > >= 比较运算符
<=> == === != =~ !~ 相等和模式匹配运算符(!= 和 !~ 不能被定义为方法)
&& 逻辑与
|| 逻辑或
.. ... 范围(包含、不包含)
? : 三元 if-then-else
= %= { /= -= += |= &= >>= <<= *= &&= ||= **= 赋值
defined? 检查指定符号是否已定义
not 逻辑否定
or and 逻辑组成

Anmerkung: In derSpalte identifiziertwird, wenn der Bediener Verfahren tatsächlich ein Verfahren ist, kann es überlastet werden.