Latest web development tutorials

opérateur Scala

Un opérateur est un symbole, utilisé pour indiquer au compilateur d'effectuer une des opérations mathématiques et logiques spécifiques.

Scala riches opérateurs intégrés, y compris les types suivants:

  • Les opérateurs arithmétiques

  • opérateurs relationnels

  • opérateurs logiques

  • opérateurs sur les bits

  • Opérateurs d'affectation

Ensuite, nous allons vous expliquer plus que l'application des différents opérateurs.


Les opérateurs arithmétiques

Le tableau suivant répertorie les opérateurs arithmétiques support Scala.

Une variable suppose que 10, B 20:

opérateurs description Exemples
+ plus Un résultat de l'opération + B est 30
- moins A - résultat de l'opération B est de -10
* signe de multiplication Un résultat de l'opération * B est 200
/ Signe de division B / A résultat de l'opération est de 2
% reste B% Un résultat de calcul est 0

Exemples

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

Exécution instance »

Mise en œuvre du code ci-dessus, la sortie est:

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

opérateurs relationnels

Le tableau suivant dresse la liste Scala supporte les opérateurs relationnels.

Une variable suppose que 10, B 20:

opérateurs description Exemples
== égal (A == B) résultat de l'opération est fausse
! = N'est pas égal (A! = B) résultat de l'opération est vrai
> plus de (A> B) Résultat de l'opération est fausse
< moins que (A <B) résultat de l'opération est vrai
> = Supérieur ou égal (A> = B), le résultat de l'opération est fausse
<= Inférieur ou égal (A <= B) résultat de l'opération est vrai

Exemples

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

Mise en œuvre du code ci-dessus, la sortie est:

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

opérateurs logiques

Le tableau suivant dresse la liste Scala prend en charge des opérateurs logiques.

Une variable supposé que 1, B est 0:

opérateurs description Exemples
&& logique et (A && B) Résultat de l'opération est fausse
|| logique ou (A || B) résultat de l'opération est vrai
! NON logique ! (A && B) résultat de l'opération est vrai

Exemples

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

Mise en œuvre du code ci-dessus, la sortie est:

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

opérateurs sur les bits

Opérateurs binaires de bits utilisés pour faire fonctionner, ~, &, |, ^ ont été annulés, et le bit, ou à peu et, au niveau du bit opération XOR avec les exemples de tableau suivant:

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

Si A = 60 et B = 13; deux variables correspondant au binaire est:

A = 0011 1100

B = 0000 1101

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

A&B = 0000 1100

A|B = 0011 1101

A^B = 0011 0001

~A  = 1100 0011

La règle Scala Bitwise comme suit:

opérateurs description Exemples
& Bitwise opérateur ET (A & b) sortie 12, explication binaire: 0000 1100
| Bitwise opérateur OR (A | b) sortie 61, explication binaire: 00111101
^ opérateur Bitwise OU exclusif (A ^ b) la sortie 49, explication binaire: 00110001
~ opérateurs sur les bits (~ A) -61 sortie, explication binaire: 1100 0011 sous une forme symbolique complément nombre binaire.
<< opérateur mobile Gauche une << 2 sorties 240 interprétation binaire: 11110000
>> Opérateurs Droite une >> 2 sortie 15, explication binaire: 0000 1111
>>> changement Unsigned droit A >>> 2 sorties 15 explication binaire: 0000 1111

Exemples

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

Mise en œuvre du code ci-dessus, la sortie est:

$ 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

Opérateurs d'affectation

Les listes suivantes l'opérateur Scala d'affectation de support de la langue:

opérateurs description Exemples
= opérateur d'affectation simple, précise l'opérande droit attribué à l'opérande de gauche. result = A + B A + B opération C se voit attribuer à C
+ = Ajout d'après la cession, les côtés gauche et droit de l'opérande avant d'ajouter assignés à l'opérande de gauche. C = + A correspond à C = C + A
- = Après affectation de soustraction, les opérandes de gauche et de droite des deux côtés de l'opérande gauche après soustraction assignés. C - = A correspond à C = C - A
* = Ensuite, la multiplication de la cession, les côtés gauche et droit des opérandes sont multipliés avant l'affectation à l'opérande de gauche. C * = A correspond à C = A *
/ = Divisé après la cession, les côtés gauche et droit de l'opérande de division après affectation à l'opérande de gauche. C / A = est équivalent C = C / A
% = Restant après l'affectation, les côtés gauche et droit de l'opérande reste après l'assignation de l'opérande gauche. % C = A est l'équivalent de C = C% A
<< = Bitwise gauche après affectation C << = 2 correspond à C = C << 2
>> = Bitwise droit après la cession C >> = 2 est équivalent à C = C >> 2
& = Bitwise ET cession après l'opération C & = 2 correspond à C = C & 2
^ = Bitwise OU exclusif opérateur puis assigné C ^ = 2 est équivalent à C = C ^ 2
| = Bitwise OU cession après C | = 2 correspond à C = C | 2

Exemples

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

Mise en œuvre du code ci-dessus, la sortie est:

$ 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

Préséance de l'opérateur

Dans une expression peut contenir une pluralité de différents opérateurs de connexion avec différents types d'objets de données de données, puisque l'expression a une variété d'opérations, un ordre différent des opérations peut avoir des résultats différents, même erronée erreur d'opération, parce que quand quand une expression contenant une variété d'opérations, selon un certain ordre doit être combiné afin d'assurer la rationalité et l'exactitude des résultats, le caractère unique de l'opération.

Priorité dans l'ordre décroissant de haut en bas, en haut a la plus haute priorité, l'opérateur virgule a la priorité la plus basse.

Le même niveau de priorité, selon l'ordre de liaison de calcul. La plupart des opérations sont calculées à partir de gauche à droite, seuls trois priorités sont de droite à gauche combinaison, ils sont des opérateurs unaires, opérateurs conditionnels, des opérateurs d'affectation.

Les priorités de base doivent se rappeler:

  • pointeur Optimal, unaire que les opérateurs binaires. Comme le signe.
  • Première multiplication et la division (module) après soustraction.
  • Première opération de décalage arithmétique après le dernier bit informatique. S'il vous plaît prêter une attention particulière à: << 1 2 & 3 + 7 est équivalent à (1 << (3 + 2)) et 7
  • opération finale de logique de calcul
Type d'opérateur opérateurs direction Reliure
Évaluation de l'expression () []. Expr ++ expr-- De gauche à droite
opérateur unaire

* & + - ~ ++ Expr --expr

* /%

+ -

>> <<

<> = <=>

==! =

De droite à gauche
opérateurs sur les bits

&

^

|

&&

||

De gauche à droite
opérateur ternaire ?: De droite à gauche
Opérateurs d'affectation = + = - = * = / =% = >> = << = & = ^ = | = De droite à gauche
virgule , De gauche à droite