Maison > développement back-end > Golang > Comment puis-je simuler des arguments de fonction nommée dans Go ?

Comment puis-je simuler des arguments de fonction nommée dans Go ?

Mary-Kate Olsen
Libérer: 2024-12-26 13:00:14
original
307 Les gens l'ont consulté

How Can I Simulate Named Function Arguments in Go?

Passer des arguments de fonction par nom de champ

Dans Go, les appels de fonction nécessitent que les arguments soient répertoriés dans le même ordre que les paramètres de la fonction. Cependant, vous préférerez peut-être spécifier explicitement les arguments par leur nom comme ceci :

MyFunction(name: "Bob", address: "New York", nick: "Builder", age: 30, value: 1000)
Copier après la connexion

Arguments non nommés non pris en charge

Malheureusement, Go ne prend pas en charge les arguments nommés. pour les fonctions. Comme mentionné dans la spécification Go, vous devez spécifier les valeurs dans l'ordre attendu pour tous les paramètres non variadiques.

Option 1 : Utiliser un Struct Wrapper

Pour imiter nommé arguments, vous pouvez créer une structure qui encapsule les paramètres de la fonction :

type Params struct {
    name, address, nick string
    age, value          int
}

func MyFunction(p Params) {
    // perform some operations using p.name, p.address, etc.
}

func main() {
    MyFunction(Params{
        name:    "Bob",
        address: "New York",
        nick:    "Builder",
        age:     30,
        value:   1000,
    })
}
Copier après la connexion

Option 2 : Utiliser un assistant Fonction

Si vous ne pouvez pas modifier la fonction d'origine, créez une fonction d'assistance qui prend un paramètre struct et appelle la fonction d'origine avec les champs appropriés comme arguments.

func MyFunction2(p Params) {
    MyFunction(p.name, p.address, p.nick, p.age, p.value)
}

func main() {
    MyFunction2(Params{
        name:    "Bob",
        address: "New York",
        nick:    "Builder",
        age:     30,
        value:   1000,
    })
}
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!

source:php.cn
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal