Maison  >  Article  >  développement back-end  >  Analyse approfondie des méthodes de classement par priorité des différents opérateurs en langage Go

Analyse approfondie des méthodes de classement par priorité des différents opérateurs en langage Go

PHPz
PHPzoriginal
2023-12-23 08:58:171001parcourir

Analyse approfondie des méthodes de classement par priorité des différents opérateurs en langage Go

Analyse approfondie de la méthode de classement des priorités de divers opérateurs en langage Go

En langage Go, la priorité des opérateurs détermine l'ordre d'évaluation des opérateurs dans les expressions. Comprendre correctement la priorité des opérateurs est l’une des clés pour écrire du code efficace. Cet article fournira une analyse approfondie des méthodes de classement par priorité de divers opérateurs dans le langage Go et fournira des exemples de code spécifiques.

1. La priorité des opérateurs arithmétiques

En langage Go, la priorité des opérateurs arithmétiques de haut en bas est :

  1. Opérateurs unaires : +, -
  2. Opérateurs de multiplication : *, /, %
  3. Opérateurs d'addition : +, -
  4. Opérateurs de comparaison : ==, !=, >, =,

Exemple de code :

package main

import "fmt"

func main() {
    var a, b, c int = 2, 3, 4
    var result int

    // 一元运算符
    result = -a
    fmt.Println(result) // 输出:-2

    // 乘法运算符
    result = a * b
    fmt.Println(result) // 输出:6

    // 加法运算符
    result = a + b
    fmt.Println(result) // 输出:5

    // 比较运算符
    fmt.Println(a == b) // 输出:false
    fmt.Println(a < b) // 输出:true
}

2. Priorité des opérateurs logiques Niveau

En langage Go, le La priorité des opérateurs logiques de haut en bas est :

  1. NON logique : !
  2. ET logique : &&
  3. Ou logique : ||

Exemple de code :

package main

import "fmt"

func main() {
    var a, b, c bool = true, false, true
    var result bool

    // 逻辑非
    result = !a
    fmt.Println(result) // 输出:false

    // 逻辑与
    result = a && b
    fmt.Println(result) // 输出:false

    // 逻辑或
    result = a || b
    fmt.Println(result) // 输出:true
}

Trois, La priorité des opérateurs d'affectation

En Go langue, la priorité des opérateurs d'affectation est de droite à gauche, et n'a rien à voir avec les priorités des autres opérateurs.

Exemple de code :

package main

import "fmt"

func main() {
    var a, b int = 2, 3

    // 简单赋值
    a = b
    fmt.Println(a) // 输出:3

    // 复合赋值
    a += b
    fmt.Println(a) // 输出:6
}

4. Priorité des opérateurs conditionnels

En langage Go, la priorité de l'opérateur conditionnel (opérateur ternaire) est supérieure à celle de l'opérateur d'affectation, mais inférieure à celle de la plupart des autres opérateurs.

Exemple de code :

package main

import "fmt"

func main() {
    var a, b int = 2, 3
    var result int

    // 条件运算符
    result = a > b ? a : b
    fmt.Println(result) // 输出:3
}

5. Priorité des opérateurs au niveau du bit

En langage Go, la priorité des opérateurs au niveau du bit de haut en bas est :

  1. Négation au niveau du bit : ~
  2. ET au niveau du bit : &
  3. OU au niveau du bit : |
  4. XOR au niveau du bit : ^
  5. Maj gauche :
  6. Maj droit :>>

Exemple de code :

package main

import "fmt"

func main() {
    var a, b uint8 = 2, 3
    var result uint8

    // 按位取反
    result = ~a
    fmt.Println(result) // 输出:253

    // 按位与
    result = a & b
    fmt.Println(result) // 输出:2

    // 按位或
    result = a | b
    fmt.Println(result) // 输出:3
}

6. Préséance des autres opérateurs Niveau

En langage Go, la priorité des autres opérateurs est par ordre croissant :

  1. Opérateur d'adresse : &
  2. Opérateur d'index : []
  3. Opérateur de sélection de membre : .

Exemple de code :

package main

import "fmt"

type person struct {
    name string
    age int
}

func main() {
    var p person
    p.name = "John"
    p.age = 25

    // 地址运算符
    fmt.Println(&p) // 输出:&{John 25}

    // 索引运算符
    nums := [3]int{1, 2, 3}
    fmt.Println(nums[0]) // 输出:1

    // 成员选择运算符
    fmt.Println(p.name) // 输出:John
}

Ce qui précède est un article qui fournit une analyse approfondie de la méthodes de tri prioritaire des différents opérateurs dans le langage Go. En comprenant correctement la priorité des opérateurs, nous pouvons écrire du code efficace et précis, améliorant ainsi la lisibilité du code et l'efficacité de son exécution. J'espère que cela aide!

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn