Rumah >pembangunan bahagian belakang >Golang >Bagaimana untuk mencetak struktur sebagai rentetan biasa dengan aksara yang terlepas dalam golang?
Di Golang, mencetak struktur sebagai rentetan biasa dengan aksara yang dilepaskan adalah keperluan biasa. Ini boleh dicapai dengan menggunakan fungsi Sprint daripada pakej fmt. Fungsi Sprint menukar struktur menjadi rentetan dan secara automatik melarikan diri daripada aksara khas di dalamnya. Dengan menggunakan ruang letak %#v, anda boleh memastikan bahawa aksara yang dilepaskan dimasukkan dalam rentetan bercetak. Berikut ialah kod contoh mudah yang menunjukkan cara mencetak struct sebagai rentetan biasa dengan aksara yang dilepaskan: ```pergi pakej utama import ( "fmt" ) taip Person struct { Rentetan nama Umur int } func main() { p := Orang{ Nama: "John", Umur: 30, } str := fmt.Sprintf("%#v", p) fmt.Println(str) } ``` Dalam kod di atas, kami mentakrifkan struktur Orang dan mencipta contoh p. Kemudian, gunakan fungsi fmt.Sprintf untuk menukar p kepada rentetan biasa dengan aksara yang dilepaskan. Akhir sekali, gunakan fungsi fmt.Println untuk mencetak rentetan. Jalankan kod dan hasil keluaran ialah `main.Person{Name:"John", Age:30}`, di mana petikan berganda dan garis miring ke belakang mewakili aksara melarikan diri. Dengan cara ini, kami berjaya mencetak struktur sebagai rentetan biasa dengan aksara yang dilepaskan.
Saya cuba mencetak struktur golang sebagai rentetan dengan aksara yang dilepaskan tetapi tidak dapat melakukannya.
Saya ingin mencetak struktur saya seperti ini:
"{"data":"myname","value":"ashutosh"}"
Ini yang saya cuba.
package main import ( "encoding/json" "fmt" ) type Resp struct { Data string `json:"data"` Value string `json:"value"` } func main() { var data Resp data.Data = "Name" data.Value = "Ashutosh" r, _ := json.Marshal(data) fmt.Println("MyStruct: ", string(r)) }
Tetapi ia mencetak seperti ini.
{"data":"名称","value":"ashutosh"}
Bolehkah seseorang membantu saya mendapatkan output berikut? :
. /kod>:"{"data":"myname","value":"ashutosh"}"
要引用任何字符串,您可以使用strconv.quote()
fmt.println("mystruct:", strconv.quote(string(r)))
p>fmt
Terdapat juga kata kerja dalam pakej untuk memetik rentetan: %q
:
fmt
包中还有一个用于引用字符串的动词:%q
Kepingan rentetan dan bait (pemprosesan setara dengan kata kerja ini):
%q a double-quoted string safely escaped with go syntax
Jadi anda juga boleh mencetak seperti ini:
fmt.printf("mystruct: %q", string(r))
Memandangkan ini juga berfungsi dengan kepingan bait, anda tidak memerlukan penukaran
:
fmt.printf("mystruct: %q", r)
string
Ini semua adalah keluaran (cuba di pergi taman permainan):
MyStruct: "{\"data\":\"Name\",\"value\":\"Ashutosh\"}"
Atas ialah kandungan terperinci Bagaimana untuk mencetak struktur sebagai rentetan biasa dengan aksara yang terlepas dalam golang?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!