Latest web development tutorials

Operator scala

Seorang operator adalah simbol, yang digunakan untuk memberitahu compiler untuk melakukan tertentu operasi matematis dan logis.

Scala kaya built-in operator, termasuk jenis berikut:

  • operator aritmatika

  • Operator relasional

  • Operator logis

  • bitwise Operator

  • Operator penugasan

Selanjutnya, kita akan menjelaskan kepada Anda lebih dari penerapan berbagai operator.


operator aritmatika

Tabel berikut berisi daftar Scala operator dukungan aritmatika.

Sebuah variabel diasumsikan sebagai 10, B 20:

operator deskripsi contoh
+ plus Hasil operasi + B adalah 30
- kurang A - B hasil operasi -10
* perkalian tanda A * B hasil operasi adalah 200
/ Tanda divisi B / Hasil operasi 2
% sisa B% Hasil perhitungan adalah 0

contoh

object Test {
   def main(args: Array[String]) {
      var a = 10;
      var b = 20;
      var c = 25;
      var d = 25;
      println("a + b = " + (a + b) );
      println("a - b = " + (a - b) );
      println("a * b = " + (a * b) );
      println("b / a = " + (b / a) );
      println("b % a = " + (b % a) );
      println("c % a = " + (c % a) );
      
   }
}

Menjalankan contoh »

Pelaksanaan kode di atas, output adalah:

$ scalac Test.scala 
$ scala Test
a + b = 30
a - b = -10
a * b = 200
b / a = 2
b % a = 0
c % a = 5

Operator relasional

Tabel berikut berisi daftar Scala mendukung operator relasional.

Sebuah variabel diasumsikan sebagai 10, B 20:

operator deskripsi contoh
== sama (A == B) hasil Operasi adalah palsu
! = Tidak sama (A! = B) hasil operasi benar
> lebih besar dari (A> B) hasil Operasi adalah palsu
< Kurang dari (A <B) hasil operasi benar
> = Lebih besar dari atau sama (A> = B) hasil operasi adalah palsu
<= Kurang dari atau sama (A <= B) hasil operasi benar

contoh

object Test {
   def main(args: Array[String]) {
      var a = 10;
      var b = 20;
      println("a == b = " + (a == b) );
      println("a != b = " + (a != b) );
      println("a > b = " + (a > b) );
      println("a < b = " + (a < b) );
      println("b >= a = " + (b >= a) );
      println("b <= a = " + (b <= a) );
   }
}

Pelaksanaan kode di atas, output adalah:

$ scalac Test.scala 
$ scala Test
a == b = false
a != b = true
a > b = false
a < b = true
b >= a = true
b <= a = false

Operator logis

Tabel berikut berisi daftar Scala mendukung operator logis.

Sebuah variabel diasumsikan sebagai 1, B adalah 0:

operator deskripsi contoh
&& logika dan (A && B) hasil Operasi adalah palsu
|| logis atau (A || B) hasil operasi benar
! logis TIDAK ! (A && B) hasil operasi benar

contoh

object Test {
   def main(args: Array[String]) {
      var a = true;
      var b = false;

      println("a && b = " + (a&&b) );

      println("a || b = " + (a||b) );

      println("!(a && b) = " + !(a && b) );
   }
} 

Pelaksanaan kode di atas, output adalah:

$ scalac Test.scala 
$ scala Test
a && b = false
a || b = true
!(a && b) = true

bitwise Operator

Bitwise Operator bit yang digunakan untuk mengoperasikan, ~, &, |, ^ yang menegasikan, dan bit, atau demi sedikit dan, bitwise XOR operasi dengan contoh tabel berikut:

p q p & q p | q p ^ q
0 0 0 0 0
0 1 0 1 1
1 1 1 1 0
1 0 0 1 1

Jika A = 60, dan B = 13; dua variabel sesuai dengan biner adalah:

A = 0011 1100

B = 0000 1101

-------位运算----------

A&B = 0000 1100

A|B = 0011 1101

A^B = 0011 0001

~A  = 1100 0011

Aturan Scala Bitwise sebagai berikut:

operator deskripsi contoh
& Bitwise operator AND (A & b) keluaran 12, penjelasan biner: 0000 1100
| Bitwise operator OR (A | b) keluaran 61, penjelasan biner: 00111101
^ Bitwise eksklusif operator OR (A ^ b) output dari 49, penjelasan biner: 00110001
~ bitwise Operator (~ A) -61 output, penjelasan biner: 1100 0011 dalam bentuk simbolis melengkapi bilangan biner.
<< operator seluler meninggalkan a << 2 output 240 interpretasi Binary: 11110000
>> Operator Seluler yang tepat a >> 2 keluaran 15, penjelasan biner: 0000 1111
>>> shift kanan Unsigned A >>> 2 output 15 penjelasan biner: 0000 1111

contoh

object Test {
   def main(args: Array[String]) {
      var a = 60;           /* 60 = 0011 1100 */  
      var b = 13;           /* 13 = 0000 1101 */
      var c = 0;

      c = a & b;            /* 12 = 0000 1100 */ 
      println("a & b = " + c );

      c = a | b;            /* 61 = 0011 1101 */
      println("a | b = " + c );

      c = a ^ b;            /* 49 = 0011 0001 */
      println("a ^ b = " + c );

      c = ~a;               /* -61 = 1100 0011 */
      println("~a = " + c );

      c = a << 2;           /* 240 = 1111 0000 */
      println("a << 2 = " + c );

      c = a >> 2;           /* 215 = 1111 */
      println("a >> 2  = " + c );

      c = a >>> 2;          /* 215 = 0000 1111 */
      println("a >>> 2 = " + c );
   }
} 

Pelaksanaan kode di atas, output adalah:

$ scalac Test.scala 
$ scala Test
a & b = 12
a | b = 61
a ^ b = 49
~a = -61
a << 2 = 240
a >> 2  = 15
a >>> 2 = 15

Operator penugasan

Berikut ini daftar operator Scala bahasa dukungan tugas:

operator deskripsi contoh
= operator penugasan sederhana, menentukan operan kanan ditugaskan untuk operan kiri. C hasil = A + B A + B operasi ditugaskan untuk C
+ = Menambahkan setelah tugas, sisi kiri dan kanan dari operan sebelum menambahkan ditugaskan untuk operan kiri. C + = A sesuai dengan C = C + A
- = Setelah pengurangan tugas, operan kiri dan kanan pada kedua sisi operan kiri setelah pengurangan ditugaskan untuk. C - = A sesuai dengan C = C - A
* = Kemudian mengalikan tugas, sisi kiri dan kanan dari operan dikalikan sebelum tugas untuk operan kiri. C * = A sesuai dengan C = C * A
/ = Dibagi setelah tugas, sisi kiri dan kanan dari operan pemisah setelah tugas untuk operan kiri. C / = A setara C = C / A
% = Sisanya setelah tugas, sisi kiri dan kanan dari operan sisanya setelah tugas untuk operan kiri. C% = A setara dengan C = C% A
<< = Bitwise kiri setelah penugasan C << = 2 sesuai dengan C = C << 2
>> = Bitwise tepat setelah tugas C >> = 2 adalah setara dengan C = C >> 2
& = Bitwise AND tugas setelah operasi C & = 2 adalah setara dengan C = C & 2
^ = Bitwise eksklusif OR operator dan kemudian ditugaskan C ^ = 2 adalah setara dengan C = C ^ 2
| = Bitwise OR tugas setelah C | = 2 sesuai dengan C = C | 2

contoh

object Test {
   def main(args: Array[String]) {
      var a = 10;	
      var b = 20;
      var c = 0;

      c = a + b;
      println("c = a + b  = " + c );

      c += a ;
      println("c += a  = " + c );

      c -= a ;
      println("c -= a = " + c );

      c *= a ;
      println("c *= a = " + c );

      a = 10;
      c = 15;
      c /= a ;
      println("c /= a  = " + c );

      a = 10;
      c = 15;
      c %= a ;
      println("c %= a  = " + c );

      c <<= 2 ;
      println("c <<= 2  = " + c );

      c >>= 2 ;
      println("c >>= 2  = " + c );

      c >>= 2 ;
      println("c >>= a  = " + c );

      c &= a ;
      println("c &= 2  = " + c );
     
      c ^= a ;
      println("c ^= a  = " + c );

      c |= a ;
      println("c |= a  = " + c );
   }
} 

Pelaksanaan kode di atas, output adalah:

$ scalac Test.scala 
$ scala Test
c = a + b  = 30
c += a  = 40
c -= a = 30
c *= a = 300
c /= a  = 1
c %= a  = 5
c <<= 2  = 20
c >>= 2  = 5
c >>= a  = 1
c &= 2  = 0
c ^= a  = 10
c |= a  = 10

Precedence Operator

Dalam ungkapan mungkin berisi sejumlah operator yang berbeda menghubungkan dengan jenis data yang berbeda dari objek data; karena ekspresi memiliki berbagai operasi, urutan yang berbeda dari operasi mungkin memiliki hasil yang berbeda bahkan keliru kesalahan operasi, karena ketika ketika sebuah ekspresi yang mengandung berbagai operasi, menurut urutan tertentu harus digabungkan untuk memastikan rasionalitas dan kebenaran dari hasil, keunikan operasi.

Prioritas dalam urutan dari atas ke bawah, atas memiliki prioritas tertinggi, operator koma memiliki prioritas terendah.

Tingkat prioritas yang sama, sesuai dengan urutan mengikat perhitungan. Sebagian besar operasi dihitung dari kiri ke kanan, hanya tiga prioritas yang kanan-ke-kiri kombinasi, mereka operator unary, operator kondisional, operator penugasan.

Prioritas dasar perlu diingat:

  • pointer yang optimal, unary dari operator biner. Sebagai tanda.
  • perkalian pertama dan pembagian (modulus) setelah pengurangan.
  • Pertama operasi pergeseran aritmatika setelah bit komputasi terakhir. Silahkan membayar perhatian khusus untuk: << 1 2 & 3 + 7 adalah setara dengan (1 << (3 + 2)) & 7
  • Akhir operasi perhitungan logika
Jenis Operator operator arah mengikat
evaluasi ekspresi () []. Expr ++ expr-- Kiri ke Kanan
Operator unary

* & + -! ~ ++ Expr --expr

* /%

+ -

>> <<

<> <=> =

==! =

Kanan ke Kiri
bitwise Operator

&

^

|

&&

||

Kiri ke Kanan
operator ternary ?: Kanan ke Kiri
Operator penugasan = + = - = * = / =% = >> = << = & = ^ = | = Kanan ke Kiri
koma . Kiri ke Kanan