Latest web development tutorials

Ruby Operator

Ruby mendukung kaya set operator. Kebanyakan operator sebenarnya metode panggilan. Misalnya, + b ditafsirkan sebagai. + (B), dimana variabel metode menunjuk + dipanggil, b sebagai parameter dalam pemanggilan metode.

Untuk masing-masing operator (+ - * /% ** & | ^ << >> && ||), memiliki operator singkatan tugas yang sesuai (+ = - =, dll).

operator aritmatika Ruby

Misalkan variabel nilai 10, nilai b variabel 20, maka:

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

Ruby perbandingan

Misalkan variabel nilai 10, nilai b variabel 20, maka:

运算符描述实例
==检查两个操作数的值是否相等,如果相等则条件为真。 (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。

operator penugasan Ruby

Misalkan variabel nilai 10, nilai b variabel 20, maka:

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

Ruby tugas paralel

Ruby juga mendukung variabel tugas paralel. Hal ini memungkinkan beberapa variabel dapat diawali dengan baris kode Ruby. Sebagai contoh:

a = 10
b = 20
c = 30

Menggunakan tugas paralel lebih cepat Disclaimer:

a, b, c = 10, 20, 30

tugas paralel ketika bertukar nilai-nilai dua variabel juga berguna:

a, b = b, c

Ruby Bitwise Operator

operator bitwise yang bekerja pada bit, dan bit dengan operasi bit.

Jika diasumsikan bahwa = 60, dan b = 13, sekarang dalam format biner, yang adalah sebagai berikut:

a = 0011 1100

b = 0000 1101

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

a & b = 0000 1100

a | b = 0011 1101

a ^ b = 0011 0001

~ A = 1100 0011

Tabel berikut berisi daftar Ruby mendukung operator bitwise.

operator deskripsi contoh
& Jika kedua ada di dua operan, biner operator AND untuk menyalin hasilnya. (A & b) akan 12, yaitu, 0000 1100
| Jika hadir dalam operan baik, biner OR operator untuk menyalin hasilnya. (A | b) akan 61, adalah 00.111.101
^ Jika hadir di salah satu operan, tapi tidak secara bersamaan ada di dua operan, operator XOR biner salinan hasil tersebut. (A ^ b) akan 49, adalah 00.110.001
~ Operator pelengkap berpasangan adalah operator unary, sebuah "flip" efek posisi. (~ A) akan -61, 1100 0011,2 akan melengkapi bentuk bilangan biner dengan tanda.
<< Biner pergeseran Operator kiri. Nilai operan kiri untuk bergerak ke kiri dan operan kanan jumlah tertentu digit. a << 2 akan 240, yaitu 11.110.000
>> Biner pergeseran Operator tepat. Nilai operan kiri bergerak operan kanan jumlah tertentu bit ke kanan. a >> 2 akan 15, yaitu, 0000 1111

operator logika Ruby

Tabel berikut berisi daftar Ruby mendukung operator logis.

Misalkan variabel nilai 10, nilai b variabel 20, maka:

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

operator ternary Ruby

Ada lebih dari satu tindakan yang disebut operator ternary. Nilai komputasi kebenaran pertama ekspresi, dan kemudian memutuskan untuk menerapkan dua di belakang dalam sebuah pernyataan berdasarkan hasil. operator kondisional memiliki sintaks berikut:

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

Operator berbagai Ruby

Di Ruby, urutan digunakan untuk membuat serangkaian nilai kisaran berturut - mengandung mulai nilai, nilai akhir (tergantung ketersediaan) dan nilai-nilai di antara mereka.

Di Ruby, urutan ini adalah penggunaan ".." dan "..." operator kisaran untuk membuat. Kisaran berisi dua bentuk menciptakan nilai awal dan akhir, kisaran tiga sampai membuat bentuk yang hanya berisi nilai akhir nilai awal tidak termasuk.

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

Ruby didefinisikan? Operator

didefinisikan? adalah operator khusus, apakah dalam bentuk pemanggilan metode untuk lulus ekspresi penghakiman didefinisikan. Ia mengembalikan deskripsi ekspresi string, jika ekspresi adalah hasil terdefinisinihil.

Berikut ini adalah berbagai operator didefinisikan penggunaan ?:

penggunaan 1

didefinisikan? variabel # Jika variabel telah diinisialisasi Benar,

Sebagai contoh:

foo = 42
didefinisikan? foo # => "lokal-variabel"
didefinisikan? $ _ # => "global variabel"
didefinisikan? bar # => nil (tidak terdefinisi)

penggunaan 2

didefinisikan? method_call # Jika metode telah ditetapkan, Benar

Sebagai contoh:

didefinisikan? menempatkan "metode" # =>
didefinisikan? puts (bar) # => nil (terdefinisi di sini bar)
didefinisikan? membongkar # => nil (terdefinisi di sini)

penggunaan 3

# Jika metode dapat dipanggil sebagai super user ada, maka Benar
didefinisikan? Super

Sebagai contoh:

didefinisikan? Super # => "super" (jika bisa disebut)
didefinisikan? Super # => nil (jika tidak dipanggil)

penggunaan 4

didefinisikan? menghasilkan # Jika blok kode berlalu Benar,

Sebagai contoh:

didefinisikan? yield # => "yield" (jika blok transfer)
didefinisikan? menghasilkan # => nil (jika tidak lulus blok)

Ruby dot operator "." Dan operator usus ganda "::"

Anda dapat menambahkan nama modul dan garis bawah untuk memanggil metode modul sebelum nama metode. Anda dapat menggunakan nama modul dan dua titik dua untuk referensi konstan.

:: Apakah operator unary, memungkinkan konstanta, contoh metode dan metode kelas didefinisikan dalam kelas atau modul yang dapat diakses di mana saja di kelas atau modul dari luar.

Ingat: Di Ruby, kelas dan metode juga dapat digunakan sebagai konstan.

Anda hanya perlu menambahkan sebelum nama konstanta ekspresi:: awalan, untuk kembali ke yang sesuai kelas atau modul obyek.

Jika ekspresi awalan tidak digunakan, default tuan Object kelas.

Berikut adalah dua contoh:

MR_COUNT = 0 # Object kelas didefinisikan dalam konstanta utama Foo modul
  MR_COUNT = 0
  :: MR_COUNT = 1 # untuk mengatur count global yang 1
  MR_COUNT = 2 # mengatur jumlah lokal 2
akhir
menempatkan MR_COUNT # ini konstan global yang menempatkan Foo :: MR_COUNT # Apa itu "Foo" konstanta lokal 

Kedua contoh:

CONST = 'di luar sana'
kelas Inside_one
   CONST = proc { 'di sana'}
   def where_is_my_CONST
      :: CONST + 'dalam satu'
   akhir
akhir
kelas Inside_two
   CONST = 'dalam dua'
   def where_is_my_CONST
      CONST
   akhir
akhir
menempatkan Inside_one.new.where_is_my_CONST
menempatkan Inside_two.new.where_is_my_CONST
menempatkan Obyek :: CONST + Inside_two :: CONST
menempatkan Inside_two :: CONST + CONST
menempatkan Inside_one :: CONST
menempatkan Inside_one :: CONST.call + Inside_two :: CONST

operator didahulukan Ruby

Berikut tabel Berdasarkan operator prioritas daftar semua operator.

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

Catatan: Kolomdiidentifikasisebagai metode operator adalah benar-benar sebuah metode, bisa kelebihan beban.