Maison > développement back-end > Golang > Aller deux points est égal à l'opérateur et une nouvelle variable

Aller deux points est égal à l'opérateur et une nouvelle variable

PHPz
Libérer: 2024-02-10 16:57:09
avant
547 Les gens l'ont consulté

Go 冒号等于运算符和一个新变量

L'éditeur php Xinyi est là pour vous présenter une nouvelle fonctionnalité : l'opérateur Go deux-points est égal et une nouvelle variable. La fonction de cet opérateur est de créer une nouvelle variable dans le langage Go et de l'initialiser à la valeur d'une expression. L'introduction de cette fonctionnalité rend le code plus concis et plus lisible, tout en réduisant la quantité de code redondant. En utilisant l'opérateur deux-points égal, nous pouvons attribuer une valeur à une variable tout en la déclarant, améliorant ainsi l'efficacité et la lisibilité du code. Dans l'article suivant, nous présenterons en détail l'utilisation et les précautions de cette nouvelle fonctionnalité, dans l'espoir d'apporter aide et inspiration à tout le monde.

Contenu de la question

Ce n'est peut-être pas une nouvelle question, mais je ne trouve la réponse nulle part.

Avec ce code, aucun des opérateurs :== ne travaille sur la ligne d'appel de fonction à l'intérieur de la boucle.

J'ai un cas d'utilisation dans lequel je dois déclarer un grand tableau une fois en dehors d'une boucle for, le mettre à jour dans une fonction, puis le renvoyer. Mais la fonction renvoie également une autre variable différente à chaque fois et utilisée dans cette boucle.

Allez sur le lien du terrain de jeu : 1

import "fmt"

func someFunc(names []string) (int, []string) {
    foo := 35 // Just for the example
    names = append(names, "Bob")
    return foo, names
}

func main() {

    names := []string{"Fred", "Mary"}

    for i := 0; i < 10; i++ {
        newVariable, names := someFunc(names) // This line is the problem
        fmt.Println(newVariable)
    }

}
Copier après la connexion

Comment puis-je refactoriser cela pour qu'il fonctionne comme prévu ?

Solution de contournement

Que diriez-vous de déclarer newVariable avant := ?

for i := 0; i < 10; i++ {
    var newVariable int
    newVariable, names = someFunc(names)
    fmt.Println(newVariable)
}
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!

Étiquettes associées:
source:stackoverflow.com
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal