我正在做一个网络聊天的程序,发送的消息格式为结构体类型,类似下面的结构
type Msg struct {
Type uint8
Name string
Content string
}
现在需要发送的话,要转换成[]byte,该怎么转换啊,go语言的指针没有c语言那么灵活哦,一头雾水,大神教教我!
更多评论
我用json包的
func Marshal(v interface{}) ([]byte, error)
type Decoder
func NewDecoder(r io.Reader) *Decoder
func (dec *Decoder) Decode(v interface{}) error
解决了问题。
我想问下
type Encoder
func NewEncoder(w io.Writer) *Encoder
func (enc *Encoder) Encode(v interface{}) error
怎么用啊?
#2
比如:你想将一个struct用json编码存入文件中,可以:(代码示意)
file, _ := os.Open("1.txt")
defer file.Close()
encoder := json.NewEncoder(file)
encoder.Encode(myStruct)
这样,json直接就写入文件中了。这里的文件可以替换为任何实现了io.Writer接口的对象。
明白了吧。
#3