Rumah >pembangunan bahagian belakang >Golang >Bagaimana untuk menyekat Amaran Go Vet Mengenai Tanda Berbilang Peratus dalam Println?
Cara Menekan Amaran Go Vet untuk Tanda Berbilang Peratus dalam Println
Go vet boleh menjana amaran apabila ia menemui arahan pemformatan yang berpotensi dalam panggilan fungsi seperti Println. Amaran ini boleh menjadi sangat mengecewakan apabila anda sengaja ingin mencetak tanda berbilang peratus.
Pertimbangkan kod berikut:
package main import ( "fmt" ) func main() { fmt.Println("%%dude") }
Kod ini mencetuskan amaran:
./prog.go:8:2: Println call has possible formatting directive %d
Untuk menangani isu ini, anda mempunyai dua pilihan:
Cetakan Alternatif Penyata:
Anda boleh menggunakan pernyataan cetakan alternatif yang tidak memerlukan tanda peratus untuk mencapai output yang sama. Contohnya:
fmt.Println("%" + "dude") fmt.Println("%\x25dude") fmt.Printf("%%%%dude\n") s := "%%dude" fmt.Println(s)
Peraturan Go Vet Tersuai:
Walaupun tidak disyorkan, anda boleh menyekat amaran khusus ini dengan menentukan peraturan doktor haiwan Go tersuai anda sendiri. Walau bagaimanapun, pendekatan ini tidak digalakkan kerana ia boleh membawa kepada tingkah laku yang tidak konsisten atau tidak dijangka bagi pengguna lain yang membina kod anda.
Untuk mencipta peraturan Go vet tersuai, anda boleh menentukan fail baharu, biasanya dinamakan custom_rules.go, dan editnya untuk memasukkan kandungan berikut:
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) } } }, }) }
Letakkan fail ini dalam direktori projek anda dan jalankan go generate untuk mengaktifkan peraturan. Walau bagaimanapun, seperti yang dinyatakan sebelum ini, menggunakan peraturan tersuai harus dianggap sebagai pilihan terakhir dan tidak disyorkan untuk kegunaan umum.
Atas ialah kandungan terperinci Bagaimana untuk menyekat Amaran Go Vet Mengenai Tanda Berbilang Peratus dalam Println?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!