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) ); } }
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 |