Bagaimana untuk melarikan diri % dalam golang
Dalam beberapa tahun kebelakangan ini, dengan perkembangan berterusan dan populariti industri Internet, bahasa pengaturcaraan telah menjadi semakin penting. Di antara banyak bahasa pengaturcaraan, Golang digemari oleh pembangun kerana kelebihan prestasinya yang pantas, cekap dan selamat.
Walaupun Golang mempunyai prestasi yang cekap, ia juga menghadapi pelbagai masalah dan cabaran. Salah satu masalah biasa ialah watak melarikan diri di Golang, terutamanya watak melarikan diri "%".
Di Golang, jika anda perlu menggunakan aksara melarikan diri "%", anda perlu mengulanginya dua kali, iaitu, "%%" Ini kerana di Golang, tanda peratus "%" itu sendiri a Watak melarikan diri. Oleh itu, apabila Golang mengendalikan rentetan yang mengandungi tanda peratus "%", ia akan menganggapnya sebagai rentetan format dan menghuraikan parameter yang mengikutinya sebagai parameter format.
Sebagai contoh, jika anda perlu mencetak rentetan "10%" dalam Golang, anda perlu menulisnya sebagai "fmt.Printf("10%%")". Di sini, tanda peratus pertama "%" mewakili watak melarikan diri, dan tanda peratus kedua "%" mewakili tanda peratus sebenar yang akan dikeluarkan.
Jika anda terus menulis "fmt.Printf("10%"), Golang akan berfikir bahawa anda ingin memformat output dan akan mencari parameter berikut untuk output, jadi hasil yang salah akan muncul. Ini kerana Golang akan menghuraikan aksara selepas tanda peratus "%" sebagai sebahagian daripada rentetan terformat tanpa mengendalikan tanda peratus itu sendiri dengan betul.
Sama seperti masalah ini, terdapat satu lagi ralat biasa - masalah tanda peratus semasa mengekod URL. Dalam permintaan HTTP, tanda peratus dalam URL biasanya mewakili aksara melarikan diri, menukar beberapa aksara atau bait khas kepada beberapa rentetan yang dikodkan khas. Contohnya, %20 mewakili ruang dan %3A mewakili titik bertindih.
Di Golang, anda juga menghadapi masalah tanda peratus apabila pengekodan URL. Jika anda menggunakan fungsi pengekodan URL Golang sendiri untuk pengekodan, anda juga perlu memberi perhatian untuk melepaskan tanda peratus. Contohnya, gunakan fungsi Encode dalam "net/url" untuk mengekod rentetan dalam Golang:
import "net/url" encodeStr := url.QueryEscape("http://www.baidu.com/?query=测试&name=百度") fmt.Println(encodeStr) // 输出:http%3A%2F%2Fwww.baidu.com%2F%3Fquery%3D%E6%B5%8B%E8%AF%95%26name%3D%E7%99%BE%E5%BA%A6
Seperti yang anda lihat, Golang melarikan diri daripada semua aksara khas dalam parameter dan menggunakan Tanda peratus mengekodnya.
Walau bagaimanapun, jika anda ingin memperkenalkan aksara melarikan diri tersuai, seperti tanda peratus "%" yang dinyatakan sebelum ini, Golang akan menyebabkan ralat penyahkodan. Sebagai contoh, kod berikut akan menyebabkan ralat:
import "net/url" encodeStr := url.QueryEscape("http://www.baidu.com/?query=测试&name=10%") fmt.Println(encodeStr) // 输出:http%3A%2F%2Fwww.baidu.com%2F%3Fquery%3D%E6%B5%8B%E8%AF%95%26name%3D10
Seperti yang anda lihat, hanya "10" yang tinggal dalam "10%" dalam hasil pengekodan dan aksara akan hilang semasa penyahkodan, dengan itu Menyebabkan ralat program.
Dalam kes ini, penyelesaiannya juga sangat mudah, cuma gantikan watak yang perlu dilepaskan dengan watak lain. Sebagai contoh, gantikan tanda peratus "%" dengan "%25" (pengekodan URL bagi tanda peratus):
import "net/url" import "strings" encodeStr := url.QueryEscape(strings.Replace("http://www.baidu.com/?query=测试&name=10%", "%", "%25", -1)) fmt.Println(encodeStr) // 输出:http%3A%2F%2Fwww.baidu.com%2F%3Fquery%3D%E6%B5%8B%E8%AF%95%26name%3D10%25
Dengan cara ini, hasil pengekodan akan dinyahkod dengan betul.
Secara umumnya, watak melarikan diri "%" dalam Golang memerlukan perhatian khusus dan perlu diulang dua kali untuk menggunakannya dengan betul. Apabila mengekod URL, jika anda perlu menggunakan tanda peratus untuk melarikan diri, pemprosesan khas diperlukan untuk mengelakkan ralat penyahkodan. Hanya dengan cara ini kami boleh menggunakan sepenuhnya kelebihan Golang, mengelakkan ralat yang tidak dijangka dan menjadikan kod kami lebih mantap dan cekap.
Atas ialah kandungan terperinci Bagaimana untuk melarikan diri % dalam golang. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

GO Language Pack Import: Apakah perbezaan antara garis bawah dan tanpa garis bawah?

Bagaimana untuk melaksanakan pemindahan maklumat jangka pendek antara halaman dalam kerangka beego?

Bagaimana cara menukar senarai hasil pertanyaan mysql ke dalam slice struktur tersuai dalam bahasa Go?

Bagaimana saya boleh menentukan kekangan jenis tersuai untuk generik di GO?

Bagaimana saya menulis objek dan stub untuk ujian di GO?

Bagaimana anda menulis ujian unit di GO?

Bagaimana cara menulis fail dalam bahasa Go dengan mudah?

Bagaimana saya boleh menggunakan alat pengesanan untuk memahami aliran pelaksanaan aplikasi saya?
