Maison  >  Article  >  développement back-end  >  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
PHPzavant
2024-02-10 16:57:09490parcourir

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)
    }

}

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)
}

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