Maison  >  Article  >  développement back-end  >  Un article pour vous aider à comprendre les opérateurs de base et le contrôle de flux du langage Go

Un article pour vous aider à comprendre les opérateurs de base et le contrôle de flux du langage Go

Go语言进阶学习
Go语言进阶学习avant
2023-07-20 14:38:04540parcourir
Cette fois, nous continuons à apprendre les opérateurs de base et le contrôle de flux de Go.

Operator

Operator semble mystérieux, mais en fait on le voit beaucoup plus souvent, comme ==,+,/,+

,/ et autres. Les opérateurs sont principalement divisés en opérateurs relationnels

  • opérateurs logiques

  • opérateurs de bits

  • Affectation opérateur

  • Comprenons brièvement ce qui suit.

  • Opérateurs arithmétiques

    Comme leur nom l'indique, les opérateurs arithmétiques sont principalement utilisés en arithmétique, tels que l'addition, la soustraction, la multiplication et la division.

    Une brève introduction est la suivante.

    opérateur description Ajouter
    - Soustraire
    * Multiplier
    / Divide
    % Trouver le reste
    ++ Ajouté par vous-même
    - - Auto-décroissante


    Opérateur Relationnel

    Opérateur Description
    = = Vérifiez si deux valeurs sont égales, si Renvoie True si égal, sinon renvoie False
    != Vérifiez si les deux valeurs ne sont pas égales, sinon renvoie True sinon renvoie False
    > Vérifiez si la valeur de gauche est supérieure à la valeur de droite, si c'est le cas, retournez True sinon retournez False
    >= Vérifiez si la valeur de gauche est supérieure ou égale à la valeur de droite, si c'est le cas, renvoyez True, sinon renvoyez False
    beafe7be0fb60d21f1c48f75791613c2> Le déplacement de n bits vers la droite est divisé par 2 élevé à la nième puissance. "a>>b" décale tous les bits binaires de a vers la droite de b bits.


    Opérateur d'affectation

    L'opérateur d'affectation est également couramment utilisé dans le développement.

    Opérateur Description
    = Simple L'opérateur d'affectation attribue la valeur d'une expression à une lvalue
    += additionner puis attribuer la valeur
    -= Soustraire puis attribuer la valeur
    *= multiplié puis attribué
    /= Divisez puis attribuez la valeur
    %= Trouvez le reste et attribuez la valeur
    76e26acefb190cac08a2bda5baf81375>= Déplacez-vous vers la droite et attribuez une valeur
    & = Affectation après bitwise AND
    |= OU au niveau du bit puis affectation
    ^= XOR au niveau du bit puis affectation


    Contrôle de processus

    Dans Go, il existe les types de contrôle de processus suivants.

    • if

      • if

      • étui switch

    • pour

      • standard pour

      • pourla gamme

    • goto (utilisation avec prudence)


    if

    syntax

    //方式一,一个if
    if 条件{
        //执行语句
    }
    //方式二,if条件不成功执行else
    if 条件{
        //if成功语句
    }else{
        //if不成功语句
    }
    //方式三,带有else if得
    if 条件1{
        //if成功语句
    }else if 条件2{
        //if不成功,继续else if条件
    }else{
        //上面都不成功,执行else
    }

    xamples

    package main
    
    import "fmt"
    
    func main() {
        var gender = "男"
    
        if gender == "男" {
            fmt.Println("男")
        } else if gender == "女" {
            fmt.Println("女")
        } else {
            fmt.Println("啥都不是???")
      }
    }


    switch case

    switch caseif本质是一个东西,但是在某些场景,switch是比if更加简洁的。

    代码

    package main
    
    import "fmt"
    
    func main() {
        var week = 3
        switch week {
        case 1:
            fmt.Println("周一")
        case 2:
            fmt.Println("周二")
        case 3:
            fmt.Println("周三")
        case 4:
            fmt.Println("周四")
        case 5:
            fmt.Println("周五")
        case 6:
            fmt.Println("周六")
        case 7:
            fmt.Println("周日")
        default://如果上面都没执行,会执行default
            fmt.Println("星期八????")
      }
    }

    注:在Go中,switch是没有case穿透的。


    Go的switch可以case多个值。

    package main
    
    import "fmt"
    
    func main() {
        var week = 3
        switch week {
        case 1, 2, 3, 4, 5:
            fmt.Println("上班")
        case 6:
            fmt.Println("周六睡懒觉")
        case 7:
            fmt.Println("周日去旅游")
        default:
            fmt.Println("飞天了???")
      }
    }


    for

    标准for循环

    语法

    for 初始条件;判断条件;结束条件{
        语句
    }

    代码

    package main
    
    import "fmt"
    
    func main() {
        for i := 0; i < 10; i++ {
            fmt.Println(i)
      }
    }

    无限循环

    谨慎执行!!!

    package main
    
    import "fmt"
    
    func main() {
        for{
            fmt.Println("666")
      }
    }

    for range

    for ragne可以很方便循环数组,切片,字符串,map,channel等。

    遍历数组示例

    package main
    
    import "fmt"
    
    func main() {
        var student_list = [...]string{"张三", "李四", "王五"}
        for index, v := range student_list {
            //index为下标,v是每一个的值
            fmt.Println(index, v)
      }
    }

    注:

    如果数组,切片,字符串
      index是下标,v是值
    如果是map
      index是键,v是对(值)
    如果是通道
      只有一个值,就是通道内的值

    补充:

    在Go中,只有for循环,没有while。

    for循环就两种方式。


    goto

    goto可以通过标签在代码间无条件跳转,这就造成了一个局面,如果使用gote过多,会造成逻辑混乱,跳来跳去。

    所以,在开发中,要慎用,不到万不得已,不要使用。


    示例

    package main
    
    import "fmt"
    
    func main() {
      for i := 0; i < 10; i++ {
        for j := 0; j < 10; j++ {
          if j == 2 {
            // 直接跳转到下面的 breakTag 标签
            goto breakTag
          }
          fmt.Printf("%v-%v\n", i, j)
        }
      }
      //要跳转的标签
    breakTag:
      fmt.Println("结束for循环")
      }


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:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer