Maison >développement back-end >Golang >Comment supprimer les avertissements de Go Vet concernant les signes à plusieurs pourcentages dans 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!