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

WBOY
Lepaskan: 2024-02-09 10:10:29
ke hadapan
620 orang telah melayarinya

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))

}
Salin selepas log masuk

Tetapi ia mencetak seperti ini.

{"data":"名称","value":"ashutosh"}

Bolehkah seseorang membantu saya mendapatkan output berikut? :

. /kod>

"{"data":"myname","value":"ashutosh"}"

解决方法

要引用任何字符串,您可以使用strconv.quote()

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
Salin selepas log masuk

Jadi anda juga boleh mencetak seperti ini:

fmt.printf("mystruct: %q", string(r))
Salin selepas log masuk

Memandangkan ini juga berfungsi dengan kepingan bait, anda tidak memerlukan penukaran

:

fmt.printf("mystruct: %q", r)
Salin selepas log masuk
stringIni semua adalah keluaran (cuba di

pergi taman permainan

):

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!

sumber:stackoverflow.com
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!