Latest web development tutorials

Aller Opérateurs de langue

Les opérateurs sont utilisés pour effectuer des opérations mathématiques ou logiques dans une application en cours d'exécution.

Go opérateurs sont intégrés dans la langue:

  • Les opérateurs arithmétiques
  • opérateurs relationnels
  • opérateurs logiques
  • opérateurs sur les bits
  • Opérateurs d'affectation
  • D'autres opérateurs

Regardons chacun en détail les opérateurs introduits.


Les opérateurs arithmétiques

Le tableau ci-dessous toutes les langues Go opérateurs arithmétiques. Supposons que A est 10, B est 20.

opérateurs description Exemples
+ Ajout Une sortie + B 30
- soustraction A - sortie B -10
* Multiplié Une sortie * B 200
/ divisé B / A la sortie 2
% reste B% Une sortie 0
++ incrément Une sortie ++ 11
- décroissance sortie A-- 9

L'exemple suivant illustre l'utilisation de différents opérateurs arithmétiques:

package main

import "fmt"

func main() {

   var a int = 21
   var b int = 10
   var c int

   c = a + b
   fmt.Printf("第一行 - c 的值为 %d\n", c )
   c = a - b
   fmt.Printf("第二行 - c 的值为 %d\n", c )
   c = a * b
   fmt.Printf("第三行 - c 的值为 %d\n", c )
   c = a / b
   fmt.Printf("第四行 - c 的值为 %d\n", c )
   c = a % b
   fmt.Printf("第五行 - c 的值为 %d\n", c )
   a++
   fmt.Printf("第六行 - c 的值为 %d\n", a )
   a--
   fmt.Printf("第七行 - c 的值为 %d\n", a )
}

Des exemples des résultats d'exploitation ci-dessus:

第一行 - c 的值为 31
第二行 - c 的值为 11
第三行 - c 的值为 210
第四行 - c 的值为 2
第五行 - c 的值为 1
第六行 - c 的值为 22
第七行 - c 的值为 21

opérateurs relationnels

Le tableau suivant répertorie tous les opérateurs relationnels linguistiques Go. Supposons que A est 10, B est 20.

opérateurs description Exemples
== Vérifiez les deux valeurs sont égales, rendement égal Vrai si False sinon. (A == B) est False
! = Vérifiez si les deux valeurs ne sont pas égales, pas de rendements égaux Vrai si False sinon. (A! = B) est vrai
> Vérifiez la valeur de gauche est supérieure à la valeur du côté droit, un retour Vrai Faux sinon. (A> B) est False
< Vérifiez la valeur de gauche est inférieure à la valeur du côté droit, un retour Vrai Faux sinon. (A <B) est vrai
> = Vérifiez si la valeur est supérieure ou égale à la gauche à la juste valeur, elle retourne Vrai s'il en est autrement False. (A> = B) est False
<= Vérifiez si la valeur est inférieure ou égale à la gauche à la juste valeur, elle retourne Vrai s'il en est autrement False. (A <= B) est vrai

L'exemple suivant illustre l'utilisation des opérateurs relationnels:

package main

import "fmt"

func main() {
   var a int = 21
   var b int = 10

   if( a == b ) {
      fmt.Printf("第一行 - a 等于 b\n" )
   } else {
      fmt.Printf("第一行 - a 不等于 b\n" )
   }
   if ( a < b ) {
      fmt.Printf("第二行 - a 小于 b\n" )
   } else {
      fmt.Printf("第二行 - a 不小于 b\n" )
   } 
   
   if ( a > b ) {
      fmt.Printf("第三行 - a 大于 b\n" )
   } else {
      fmt.Printf("第三行 - a 不大于 b\n" )
   }
   /* Lets change value of a and b */
   a = 5
   b = 20
   if ( a <= b ) {
      fmt.Printf("第四行 - a 小于等于  b\n" )
   }
   if ( b >= a ) {
      fmt.Printf("第五行 - b 大于等于 b\n" )
   }
}

Des exemples des résultats d'exploitation ci-dessus:

第一行 - a 不等于 b
第二行 - a 不小于 b
第三行 - a 大于 b
第四行 - a 小于等于  b
第五行 - b 大于等于 b

opérateurs logiques

Le tableau ci-dessous toutes les langues Go opérateurs logiques. Supposons que A est vrai, B est faux.

opérateurs description Exemples
&& ET logique opérateur. Si les deux côtés des opérandes sont vrais, la condition est vraie, sinon False. (A && B) est False
|| OU logique opérateur. Si les opérandes des deux côtés il y a un vrai, la condition est vraie, sinon False. (A || B) est vrai
! NON logique opérateur. Si la condition est vraie, alors la logique NOT condition False, sinon True. ! (A && B) est vrai

L'exemple suivant illustre l'utilisation des opérateurs logiques:

package main

import "fmt"

func main() {
   var a bool = true
   var b bool = false
   if ( a && b ) {
      fmt.Printf("第一行 - 条件为 true\n" )
   }
   if ( a || b ) {
      fmt.Printf("第二行 - 条件为 true\n" )
   }
   /* 修改 a 和 b 的值 */
   a = false
   b = true
   if ( a && b ) {
      fmt.Printf("第三行 - 条件为 true\n" )
   } else {
      fmt.Printf("第三行 - 条件为 false\n" )
   }
   if ( !(a && b) ) {
      fmt.Printf("第四行 - 条件为 true\n" )
   }
}

Des exemples des résultats d'exploitation ci-dessus:

第二行 - 条件为 true
第三行 - 条件为 false
第四行 - 条件为 true

opérateurs sur les bits

Opérateurs binaires sur les entiers en bits de mémoire fonctionnent.

Le tableau suivant dresse la liste des opérateurs de bits &, |, et ^ est calculé:

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

Supposons que A = 60, B = 13, son nombre binaire:

A = 0011 1100

B = 0000 1101

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

A&B = 0000 1100

A|B = 0011 1101

A^B = 0011 0001

~A  = 1100 0011

Bit informatique symbole support du langage C montré dans le tableau suivant. Supposons que A est 60, B est de 13:

opérateurs description Exemples
& Bitwise opérateur AND "et" sont les opérateurs binaires. Sa fonction est de deux nombres binaires correspondant à chaque phase de l'opération et la participation. (A & B) résultat est 12, le binaire est 0000 1100
| Bitwise opérateur OR "|" est un opérateur binaire. Sa fonction est de participer à l'opération de chacun des deux nombres de phase binaire correspondant ou (A | B), le résultat est de 61, le binaire est 00111101
^ opérateur Bitwise OU exclusif "^" est les opérateurs binaires. Sa fonction est de participer à l'opération de chacun des deux nombres binaires correspondant XOR lorsque deux bits binaires correspondant différent et le résultat est égal à 1. (A ^ B) résulte pour 49 binaires à 00110001
<< opérateur de décalage gauche "<<" sont les opérateurs binaires. N-bit décalage à gauche est multiplié par 2 ^ n. Sa fonction à chaque binaire "<<" à gauche de l'opérande de gauche de tous un certain nombre de bits spécifié par le nombre "<<" droite de la virgule se déplace, en rejetant les 0s hautes et basses. A << 2 résultats pour 240 binaire est 11110000
>> opérateur de décalage droit ">>" sont des opérateurs binaires. Juste à côté de n bits est divisé par 2 ^ n. Sa fonction est de divers binaires ">>" l'opérande gauche Plusieurs tout droit, ">>" à droite le nombre de bits spécifié. A >> 2 résultats pour 15 0000 1111 système binaire

L'exemple suivant illustre l'utilisation des opérateurs logiques:

package main

import "fmt"

func main() {

   var a uint = 60	/* 60 = 0011 1100 */  
   var b uint = 13	/* 13 = 0000 1101 */
   var c uint = 0          

   c = a & b       /* 12 = 0000 1100 */ 
   fmt.Printf("第一行 - c 的值为 %d\n", c )

   c = a | b       /* 61 = 0011 1101 */
   fmt.Printf("第二行 - c 的值为 %d\n", c )

   c = a ^ b       /* 49 = 0011 0001 */
   fmt.Printf("第三行 - c 的值为 %d\n", c )

   c = a << 2     /* 240 = 1111 0000 */
   fmt.Printf("第四行 - c 的值为 %d\n", c )

   c = a >> 2     /* 15 = 0000 1111 */
   fmt.Printf("第五行 - c 的值为 %d\n", c )
}

Des exemples des résultats d'exploitation ci-dessus:

第一行 - c 的值为 12
第二行 - c 的值为 61
第三行 - c 的值为 49
第四行 - c 的值为 240
第五行 - c 的值为 15

Opérateurs d'affectation

Le tableau suivant répertorie tous l'opérateur d'affectation de langue Go.

opérateurs description Exemples
= opérateur d'affectation simple assigne une expression de valeur d'un lvalue C = A + B A + B sera affecté au résultat C d'expression
+ = Ajouté ensemble avant la cession C + = A est égal à C = C + A
- = Après affectation de soustraction C - = A est égal à C = C - A
* = Ensuite, la multiplication de la cession C * = A est égal à C = A *
/ = Division après la cession C / A = est égal à C = C / A
% = Remainder après la cession % C = A est égal à C = A%
<< = Gauche après la cession C << = 2 égale à C = C << 2
>> = Juste après la cession C >> = 2 égale à C = C >> 2
& = Bitwise ET affectation après C & = 2 égale à C = C & 2
^ = Après avoir appuyé sur l'affectation XOR bits C ^ = 2 égale à C = C ^ 2
| = Après avoir appuyé sur la position ou de la cession C | 2 = est égal à C = C | 2

L'exemple suivant illustre l'utilisation de l'opérateur d'affectation:

package main

import "fmt"

func main() {
   var a int = 21
   var c int

   c =  a
   fmt.Printf("第 1 行 - =  运算符实例,c 值为 = %d\n", c )

   c +=  a
   fmt.Printf("第 2 行 - += 运算符实例,c 值为 = %d\n", c )

   c -=  a
   fmt.Printf("第 3 行 - -= 运算符实例,c 值为 = %d\n", c )

   c *=  a
   fmt.Printf("第 4 行 - *= 运算符实例,c 值为 = %d\n", c )

   c /=  a
   fmt.Printf("第 5 行 - /= 运算符实例,c 值为 = %d\n", c )

   c  = 200; 

   c <<=  2
   fmt.Printf("第 6行  - <<= 运算符实例,c 值为 = %d\n", c )

   c >>=  2
   fmt.Printf("第 7 行 - >>= 运算符实例,c 值为 = %d\n", c )

   c &=  2
   fmt.Printf("第 8 行 - &= 运算符实例,c 值为 = %d\n", c )

   c ^=  2
   fmt.Printf("第 9 行 - ^= 运算符实例,c 值为 = %d\n", c )

   c |=  2
   fmt.Printf("第 10 行 - |= 运算符实例,c 值为 = %d\n", c )

}

Des exemples des résultats d'exploitation ci-dessus:

第 1 行 - =  运算符实例,c 值为 = 21
第 2 行 - += 运算符实例,c 值为 = 42
第 3 行 - -= 运算符实例,c 值为 = 21
第 4 行 - *= 运算符实例,c 值为 = 441
第 5 行 - /= 运算符实例,c 值为 = 21
第 6行  - <<= 运算符实例,c 值为 = 800
第 7 行 - >>= 运算符实例,c 值为 = 200
第 8 行 - &= 运算符实例,c 值为 = 0
第 9 行 - ^= 运算符实例,c 值为 = 2
第 10 行 - |= 运算符实例,c 值为 = 2

D'autres opérateurs

Le tableau suivant répertorie les autres opérateurs Go langue.

opérateurs description Exemples
& Adresse de retour de mémoire de variables & A; donnera l'adresse réelle de la variable.
* variable de pointeur. * A; est une variable de pointeur

L'exemple suivant illustre l'utilisation d'autres opérateurs:

package main

import "fmt"

func main() {
   var a int = 4
   var b int32
   var c float32
   var ptr *int

   /* 运算符实例 */
   fmt.Printf("第 1 行 - a 变量类型为 = %T\n", a );
   fmt.Printf("第 2 行 - b 变量类型为 = %T\n", b );
   fmt.Printf("第 3 行 - c 变量类型为 = %T\n", c );

   /*  & 和 * 运算符实例 */
   ptr = &a	/* 'ptr' 包含了 'a' 变量的地址 */
   fmt.Printf("a 的值为  %d\n", a);
   fmt.Printf("*ptr 为 %d\n", *ptr);
}

Des exemples des résultats d'exploitation ci-dessus:

第 1 行 - a 变量类型为 = int
第 2 行 - b 变量类型为 = int32
第 3 行 - c 变量类型为 = float32
a 的值为  4
*ptr 为 4

Préséance de l'opérateur

Certains opérateurs ont une priorité plus élevée, les opérateurs binaires sont la direction opérationnelle de gauche à droite. Le tableau suivant répertorie tous les opérateurs et leurs priorités, des représentants de haut en bas en priorité décroissant:

priorité opérateurs
7 ^!
6 * /% ^ & << >> &
5 + - | ^
4 ==! = << => =>
3 <-
2 &&
1 ||

Bien sûr, vous pouvez utiliser des parenthèses pour améliorer temporairement la priorité globale de l'opération d'une expression.

Des exemples des résultats d'exploitation ci-dessus:

package main

import "fmt"

func main() {
   var a int = 20
   var b int = 10
   var c int = 15
   var d int = 5
   var e int;

   e = (a + b) * c / d;      // ( 30 * 15 ) / 5
   fmt.Printf("(a + b) * c / d 的值为 : %d\n",  e );

   e = ((a + b) * c) / d;    // (30 * 15 ) / 5
   fmt.Printf("((a + b) * c) / d 的值为  : %d\n" ,  e );

   e = (a + b) * (c / d);   // (30) * (15/5)
   fmt.Printf("(a + b) * (c / d) 的值为  : %d\n",  e );

   e = a + (b * c) / d;     //  20 + (150/5)
   fmt.Printf("a + (b * c) / d 的值为  : %d\n" ,  e );  
}

Des exemples des résultats d'exploitation ci-dessus:

(a + b) * c / d 的值为 : 90
((a + b) * c) / d 的值为  : 90
(a + b) * (c / d) 的值为  : 90
a + (b * c) / d 的值为  : 50