Rumah >pembangunan bahagian belakang >Golang >Bagaimana untuk mencetak struktur sebagai rentetan biasa dengan aksara yang terlepas dalam golang?

Bagaimana untuk mencetak struktur sebagai rentetan biasa dengan aksara yang terlepas dalam golang?

WBOY
WBOYke hadapan
2024-02-09 10:10:29666semak imbas

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.

Kandungan soalan

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 包中还有一个用于引用字符串的动词:%qKepingan 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)
stringIni 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!

Kenyataan:
Artikel ini dikembalikan pada:stackoverflow.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam