Rumah >pembangunan bahagian belakang >Golang >Bagaimana untuk Merujuk Parameter Yang Sama Berbilang Kali dalam Rentetan Format fmt.Sprintf?

Bagaimana untuk Merujuk Parameter Yang Sama Berbilang Kali dalam Rentetan Format fmt.Sprintf?

Susan Sarandon
Susan Sarandonasal
2024-11-07 16:38:02811semak imbas

How to Reference the Same Parameter Multiple Times in fmt.Sprintf Format Strings?

Merujuk Parameter Yang Sama Berbilang Kali dalam fmt.Sprintf Format Rentetan

Dalam coretan kod yang diberikan, anda mempunyai fungsi yang menjana arahan SQL untuk mencipta jadual menggunakan fmt.Sprintf. Walaupun pendekatan asal adalah verbose, anda inginkan cara untuk merujuk parameter v sekali sahaja untuk pemformatan rentetan yang lebih baik.

Menurut dokumentasi untuk fmt.Sprintf:

Dalam Printf, Sprintf dan Fprintf, tingkah laku lalai adalah untuk setiap kata kerja pemformatan untuk memformat argumen berturut-turut yang diluluskan dalam panggilan. Walau bagaimanapun, tatatanda [n] sejurus sebelum kata kerja menunjukkan bahawa nhujah terindeks satu akan diformatkan sebaliknya.

Ini bermakna anda boleh melepasi pembolehubah v sekali dan menggunakan Notasi [n] untuk menentukan indeks hujah yang akan diformatkan. Contohnya, fungsi anda yang dikemas kini boleh:

func getTableCreationCommands(v string) string {
    return fmt.Sprintf(`
        CREATE TABLE share_%[1]v PARTITION OF share FOR VALUES IN (%[1]v);
        CREATE TABLE nearby_%[1]v PARTITION OF nearby FOR VALUES IN (%[1]v);
    `, v)
}

Di sini, %[1]v memberitahu pemformat untuk menggunakan argumen pertama, iaitu v, dua kali.

Untuk menggunakan fungsi ini :

import "fmt"

func main() {
    s := "X"
    fmt.Println(getTableCreationCommands(s))
}

Output:

CREATE TABLE share_X PARTITION OF share FOR VALUES IN (X);
CREATE TABLE nearby_X PARTITION OF nearby FOR VALUES IN (X);

Pendekatan ini menyediakan cara yang lebih bersih dan ringkas untuk memformat arahan SQL anda dengan berbilang rujukan kepada parameter yang sama.

Atas ialah kandungan terperinci Bagaimana untuk Merujuk Parameter Yang Sama Berbilang Kali dalam Rentetan Format fmt.Sprintf?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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