Rumah >pembangunan bahagian belakang >Golang >Adakah Terdapat Go yang Setara dengan `string.format()` Python?
Python menyediakan kaedah mudah dipanggil string.format untuk memformat rentetan dengan ruang letak tersuai. Pembangun Go telah mempersoalkan sama ada terdapat ciri yang setara dalam bahasa mereka.
Alternatif paling mudah dalam Go ialah fungsi fmt.Sprintf, yang membenarkan penggantian parameter dalam rentetan format. Walau bagaimanapun, ia tidak menyokong pertukaran tertib parameter.
Go juga termasuk pakej teks/templat, yang menawarkan pendekatan yang lebih serba boleh.
Dengan menggunakan rentetan.Jenis Pengganti, pembangun boleh membuat pemformatan mereka sendiri dengan mudah fungsi:
package main import ( "fmt" "strings" ) func main() { file, err := "/data/test.txt", "file not found" log("File {file} had error {error}", "{file}", file, "{error}", err) } func log(format string, args ...string) { r := strings.NewReplacer(args...) fmt.Println(r.Replace(format)) }
Pakej teks/templat mendayakan lebih banyak penyesuaian dengan pendekatan yang lebih bertele-tele sedikit:
package main import ( "fmt" "os" "text/template" ) func main() { file, err := "/data/test.txt", 666 log4("File {{.file}} has error {{.error}}", map[string]interface{}{"file": file, "error": err}) } func log4(format string, p map[string]interface{}) { t := template.Must(template.New("").Parse(format)) t.Execute(os.Stdout, p) }
Go membenarkan penggunaan indeks hujah eksplisit dalam rentetan format, yang membolehkan parameter yang sama digantikan berbilang kali.
Walaupun terdapat perbezaan dalam butiran pelaksanaan, Go menyediakan penyelesaian alternatif kepada string.format Python, menawarkan kedua-dua fleksibiliti dan kecekapan dalam senario pemformatan rentetan.
Atas ialah kandungan terperinci Adakah Terdapat Go yang Setara dengan `string.format()` Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!