Maison > développement back-end > Golang > le corps du texte

Pourquoi est-ce que j'obtiens l'erreur « Pas assez d'arguments dans l'appel à l'expression de méthode » dans Go ?

Patricia Arquette
Libérer: 2024-11-07 20:17:03
original
632 Les gens l'ont consulté

Why Am I Getting the

Comment éviter l'erreur « Pas assez d'arguments dans l'appel à l'expression de méthode » dans Go

Lorsque vous travaillez avec Go, vous pourriez rencontrer le erreur suivante :

prog.go:18: not enough arguments in call to method expression JSONParser.Parse
Copier après la connexion

Cette erreur peut être provoquée en essayant d'appeler une méthode d'instance comme s'il s'agissait d'une méthode au niveau de la portée du package. En d'autres termes, vous devez spécifier explicitement l'instance sur laquelle vous souhaitez appeler la méthode.

Considérez l'extrait de code suivant :

package main

type Schema struct {
}

type JSONParser struct {
}

func (jsonParser JSONParser) Parse(toParse []byte) ([]Schema, int) {
    var schema []Schema
    // whatever parsing logic
    return schema, 0
}

func main() {
    var in []byte
    actual, err2 := JSONParser.Parse(in) // This will result in the error
}
Copier après la connexion

Pour corriger l'erreur, vous devez créer une instance du type JSONParser et appelez la méthode Parse sur cette instance. Voici comment procéder :

func main() {
    var in []byte
    jp := JSONParser{} // Create an instance of JSONParser
    actual, err2 := jp.Parse(in) // Call the Parse method on the instance
}
Copier après la connexion

Vous pouvez également définir votre méthode Parse comme une fonction sans récepteur et l'appeler directement :

func Parse(toParse []byte) ([]Schema, int) {
    var schema []Schema
    // whatever parsing logic
    return schema, 0
}

func main() {
    var in []byte
    actual, err2 := Parse(in) // Call the Parse function directly
}
Copier après la connexion

En spécifiant explicitement l'instance ou en utilisant une fonction sans récepteur, vous pouvez éviter l'erreur « pas assez d'arguments dans l'appel à l'expression de méthode » et appeler correctement les méthodes d'instance dans Go.

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