Table des matières
Operator" >Operator
Opérateurs arithmétiques" >Opérateurs arithmétiques
Opérateur Relationnel" >Opérateur Relationnel
Opérateur Logique" >Opérateur Logique
opérateurs de bits" >opérateurs de bits
Opérateur d'affectation" >Opérateur d'affectation
Contrôle de processus" >Contrôle de processus
if" >if
switch case
" >switch case
for
" >for
标准for循环" >标准for循环
无限循环
" >无限循环
for range
" >for range
goto" >goto
Maison développement back-end Golang 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

Jul 20, 2023 pm 02:38 PM
go语言

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
    < Vérifiez la valeur de gauche Est-elle inférieure à la valeur de droite ? Si c'est le cas, renvoyez True Sinon, renvoyez False.


    Opérateur Logique

    OpérateurDescription
    &&Logique et opérateur. Vrai si les deux opérandes sont Vrai, sinon Faux
    ||Logique ou opérateur. Vrai si les deux opérandes ont un Vrai, Faux sinon
    !Opérateur NON logique. Faux si la condition est Vrai, sinon Vrai

    Remarque : Les opérateurs logiques sont très importants et sont souvent utilisés dans le développement.


    opérateurs de bits

    Les opérateurs au niveau du bit sont quelque peu de bas niveau et seront utilisés dans des situations spéciales

    OpérateurDescription
    & Participer Les bits binaires correspondant à chacun des deux nombres opérés sont traités par ET. (Il vaut 1 seulement si les deux bits sont 1)
    |Le OU binaire correspondant de chacun des deux nombres participant à l'opération. (Si l'un des deux bits est 1, c'est 1)
    ^Les bits binaires correspondants des deux nombres impliqués dans l'opération sont exclusifs ou. les bits sont différents, le résultat est 1.(Si les deux bits sont différents, c'est 1)
    <<Décaler n bits vers la gauche revient à multiplier par 2 élevé à la nième puissance. "a<
    >> 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
    < <=Déplacez-vous vers la gauche et attribuez une valeur
    >>= 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
    }
    Copier après la connexion

    xamples

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


    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("星期八????")
      }
    }
    Copier après la connexion

    注:在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("飞天了???")
      }
    }
    Copier après la connexion


    for

    标准for循环

    语法

    for 初始条件;判断条件;结束条件{
        语句
    }
    Copier après la connexion

    代码

    package main
    
    import "fmt"
    
    func main() {
        for i := 0; i < 10; i++ {
            fmt.Println(i)
      }
    }
    Copier après la connexion

    无限循环

    谨慎执行!!!

    package main
    
    import "fmt"
    
    func main() {
        for{
            fmt.Println("666")
      }
    }
    Copier après la connexion

    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)
      }
    }
    Copier après la connexion

    注:

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

    补充:

    在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循环")
      }
    Copier après la connexion


    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 de ce site Web
    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

    Outils d'IA chauds

    Undresser.AI Undress

    Undresser.AI Undress

    Application basée sur l'IA pour créer des photos de nu réalistes

    AI Clothes Remover

    AI Clothes Remover

    Outil d'IA en ligne pour supprimer les vêtements des photos.

    Undress AI Tool

    Undress AI Tool

    Images de déshabillage gratuites

    Clothoff.io

    Clothoff.io

    Dissolvant de vêtements AI

    AI Hentai Generator

    AI Hentai Generator

    Générez AI Hentai gratuitement.

    Article chaud

    R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
    3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
    R.E.P.O. Meilleurs paramètres graphiques
    3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
    R.E.P.O. Comment réparer l'audio si vous n'entendez personne
    3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
    WWE 2K25: Comment déverrouiller tout dans Myrise
    3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

    Outils chauds

    Bloc-notes++7.3.1

    Bloc-notes++7.3.1

    Éditeur de code facile à utiliser et gratuit

    SublimeText3 version chinoise

    SublimeText3 version chinoise

    Version chinoise, très simple à utiliser

    Envoyer Studio 13.0.1

    Envoyer Studio 13.0.1

    Puissant environnement de développement intégré PHP

    Dreamweaver CS6

    Dreamweaver CS6

    Outils de développement Web visuel

    SublimeText3 version Mac

    SublimeText3 version Mac

    Logiciel d'édition de code au niveau de Dieu (SublimeText3)

    Quelles bibliothèques sont utilisées pour les opérations du numéro de point flottantes en Go? Quelles bibliothèques sont utilisées pour les opérations du numéro de point flottantes en Go? Apr 02, 2025 pm 02:06 PM

    La bibliothèque utilisée pour le fonctionnement du numéro de point flottante dans le langage go présente comment s'assurer que la précision est ...

    Quel est le problème avec le fil de file d'attente dans GO's Crawler Colly? Quel est le problème avec le fil de file d'attente dans GO's Crawler Colly? Apr 02, 2025 pm 02:09 PM

    Problème de threading de file d'attente dans Go Crawler Colly explore le problème de l'utilisation de la bibliothèque Crawler Crawler dans le langage Go, les développeurs rencontrent souvent des problèmes avec les threads et les files d'attente de demande. � ...

    Quelles bibliothèques de GO sont développées par de grandes entreprises ou fournies par des projets open source bien connus? Quelles bibliothèques de GO sont développées par de grandes entreprises ou fournies par des projets open source bien connus? Apr 02, 2025 pm 04:12 PM

    Quelles bibliothèques de GO sont développées par de grandes entreprises ou des projets open source bien connus? Lors de la programmation en Go, les développeurs rencontrent souvent des besoins communs, ...

    Quelle est la différence entre la structure de définition des mots clés `var` et« type »dans le langage Go? Quelle est la différence entre la structure de définition des mots clés `var` et« type »dans le langage Go? Apr 02, 2025 pm 12:57 PM

    Deux façons de définir les structures dans le langage GO: la différence entre les mots clés VAR et le type. Lorsque vous définissez des structures, GO Language voit souvent deux façons d'écrire différentes: d'abord ...

    Comment résoudre le problème de conversion de type user_id lors de l'utilisation du flux redis pour implémenter les files d'attente de messages dans le langage Go? Comment résoudre le problème de conversion de type user_id lors de l'utilisation du flux redis pour implémenter les files d'attente de messages dans le langage Go? Apr 02, 2025 pm 04:54 PM

    Le problème de l'utilisation de Redessstream pour implémenter les files d'attente de messages dans le langage GO consiste à utiliser le langage GO et redis ...

    Dans Go, pourquoi les chaînes d'impression avec println et string () ont-elles des effets différents? Dans Go, pourquoi les chaînes d'impression avec println et string () ont-elles des effets différents? Apr 02, 2025 pm 02:03 PM

    La différence entre l'impression de chaîne dans le langage go: la différence dans l'effet de l'utilisation de fonctions println et string () est en Go ...

    Pourquoi est-il nécessaire de passer des pointeurs lors de l'utilisation de bibliothèques Go et Viper? Pourquoi est-il nécessaire de passer des pointeurs lors de l'utilisation de bibliothèques Go et Viper? Apr 02, 2025 pm 04:00 PM

    GO POINTER SYNTAXE ET ATTENDRE DES PROBLÈMES DANS LA BIBLIOTHÈQUE VIPER Lors de la programmation en langage Go, il est crucial de comprendre la syntaxe et l'utilisation des pointeurs, en particulier dans ...

    Pourquoi toutes les valeurs deviennent-elles le dernier élément lors de l'utilisation de la plage dans le langage GO pour traverser les tranches et stocker des cartes? Pourquoi toutes les valeurs deviennent-elles le dernier élément lors de l'utilisation de la plage dans le langage GO pour traverser les tranches et stocker des cartes? Apr 02, 2025 pm 04:09 PM

    Pourquoi l'itération de la carte dans GO fait-elle que toutes les valeurs deviennent le dernier élément? En langue go, face à des questions d'entrevue, vous rencontrez souvent des cartes ...

    See all articles