Rumah > pembangunan bahagian belakang > Golang > Bagaimanakah Saya Boleh Mencapai Fungsi `string.format()` Python dalam Go?

Bagaimanakah Saya Boleh Mencapai Fungsi `string.format()` Python dalam Go?

Linda Hamilton
Lepaskan: 2024-12-24 11:54:10
asal
416 orang telah melayarinya

How Can I Achieve Python's `string.format()` Functionality in Go?

Setara dengan Python string.format dalam Go?

Dalam Python, interpolasi rentetan selalunya dilakukan menggunakan fungsi format(), yang membenarkan pemasukan nilai ke dalam templat rentetan. Dalam Go, terdapat beberapa cara untuk mencapai kefungsian yang serupa.

fmt.Sprintf

Pilihan yang paling mudah ialah menggunakan fungsi fmt.Sprintf, yang mengambil rentetan format dan nombor pembolehubah hujah. Argumen dimasukkan ke dalam rentetan format mengikut susunan yang muncul. Contohnya:

fmt.Sprintf("File %s had error %s", myfile, err)
Salin selepas log masuk

Walau bagaimanapun, kaedah ini tidak membenarkan pertukaran susunan hujah dalam rentetan format, yang kadangkala diperlukan untuk tujuan pengantarabangsaan (I18N).

teks/templat

Go juga menyediakan pakej teks/templat, yang membolehkan interpolasi rentetan yang lebih kompleks. Walau bagaimanapun, ia memerlukan penggunaan templat, yang boleh menjadi lebih bertele-tele daripada menggunakan fmt.Sprintf.

tmpl, _ := template.New("errmsg").Parse("File {{.File}} has error {{.Error}}")
tmpl.Execute(&msg, params)
Salin selepas log masuk

rentetan.Pengganti

Untuk penyelesaian yang lebih padat dan fleksibel, pertimbangkan untuk menggunakan rentetan.Jenis pengganti. Ia membolehkan anda menentukan pemetaan daripada kunci kepada rentetan gantian. Kekunci boleh dimasukkan dalam rentetan format menggunakan pendakap kerinting, dan Pengganti akan menggantikannya dengan rentetan gantian yang sepadan.

r := strings.NewReplacer("{file}", file, "{error}", err)
fmt.Println(r.Replace("File {file} had error {error}"))
Salin selepas log masuk

Kaedah ini membenarkan pertukaran susunan hujah dalam rentetan format dan boleh diperluaskan dengan mudah untuk mengendalikan pelbagai jenis nilai.

Indeks Argumen Eksplisit

Akhir sekali, pakej fmt Go juga menyokong indeks hujah eksplisit, yang boleh digunakan beberapa kali untuk merujuk hujah yang sama. Ini membolehkan cara yang lebih ringkas untuk memasukkan nilai yang sama ke dalam rentetan format berbilang kali.

fmt.Printf("File %d has error %d\n", 1, 1)
Salin selepas log masuk

Pendekatan ini memberikan fleksibiliti paling banyak dari segi susunan dan memasukkan nilai yang sama beberapa kali.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mencapai Fungsi `string.format()` Python dalam Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan