How can I get the string representation of a struct?

前端 未结 5 823
闹比i
闹比i 2021-01-30 16:04

For my application, it does not matter if the string is human readable or not.

5条回答
  •  一个人的身影
    2021-01-30 16:27

    One popular way of encoding structs into strings is using JSON.

    You have certain limitations such as not getting all the information (such as the specific type of each field), only serializing exported fields, and not handling recursive values. But it is a simple standard way of serializing data.

    Working example:

    package main
    
    import (
        "fmt"
        "encoding/json"
    )
    
    type s struct {
        Int       int
        String    string
        ByteSlice []byte
    }
    
    func main() {
        a := &s{42, "Hello World!", []byte{0,1,2,3,4}}
    
        out, err := json.Marshal(a)
        if err != nil {
            panic (err)
        }
    
        fmt.Println(string(out))
    }
    

    Give this output:

    {"Int":42,"String":"Hello World!","ByteSlice":"AAECAwQ="}
    

    https://play.golang.org/p/sx-xdSxAOG

提交回复
热议问题