Maison >développement back-end >Golang >Comment supprimer les avertissements de Go Vet concernant les signes à plusieurs pourcentages dans Println ?

Comment supprimer les avertissements de Go Vet concernant les signes à plusieurs pourcentages dans Println ?

Susan Sarandon
Susan Sarandonoriginal
2024-12-14 21:06:23206parcourir

How to Suppress Go Vet Warnings About Multiple Percent Signs in Println?

Comment supprimer l'avertissement Go Vet pour les signes à plusieurs pourcentages dans Println

Go vet peut générer des avertissements lorsqu'il rencontre des directives de formatage potentielles dans les appels de fonction comme Println. Cet avertissement peut être particulièrement frustrant lorsque vous souhaitez intentionnellement imprimer plusieurs signes de pourcentage.

Considérez le code suivant :

package main

import (
    "fmt"
)

func main() {
    fmt.Println("%%dude")
}

Ce code déclenche l'avertissement :

./prog.go:8:2: Println call has possible formatting directive %d

Pour résoudre ce problème, vous avez deux options :

Impression alternative Déclarations :

Vous pouvez utiliser des instructions d'impression alternatives qui ne nécessitent pas de signes de pourcentage pour obtenir le même résultat. Par exemple :

fmt.Println("%" + "dude")
fmt.Println("%\x25dude")
fmt.Printf("%%%%dude\n")
s := "%%dude"
fmt.Println(s)

Règles Go Vet personnalisées :

Bien que cela ne soit pas recommandé, vous pouvez supprimer cet avertissement spécifique en définissant vos propres règles Go Vet personnalisées. Cependant, cette approche est déconseillée car elle pourrait entraîner un comportement incohérent ou inattendu pour les autres utilisateurs qui créent votre code.

Pour créer une règle Go vet personnalisée, vous pouvez définir un nouveau fichier, généralement nommé custom_rules.go, et modifiez-le pour inclure le contenu suivant :

package govetrules

import (
    "github.com/golangci/go-criticisms"
)

func init() {
    criticisms.Register("suppress-fmt-percent-warning", criticisms.Rule{
        Description: "Suppresses the warning for Println calls with multiple percent signs",
        Validator: func(ctx *criticisms.Context, node ast.Node, s string) {
            // Disable the warning for Println calls with at least two consecutive percent signs
            if call, ok := node.(*ast.CallExpr); ok && call.Fun.Name == "Println" {
                args := call.Args
                if len(args) >= 2 && args[0].String() == "\"\"" && args[1].String() == "\"\"" {
                    ctx.SetResult(criticisms.Invalid)
                }
            }
        },
    })
}

Placez ce fichier dans le répertoire de votre projet et exécutez go generate pour activer la règle. Cependant, comme mentionné précédemment, l'utilisation de règles personnalisées doit être considérée comme un dernier recours et n'est pas recommandée pour une utilisation générale.

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:
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