很多其他人都提到了encoding那个包。那里面也可以找到encoding/json,encoding/xml等各种将struct转化成文本的手段。然后再将文本存入文件就可以了。
所以问题的关键是struct怎么转成文本或二进制流
1)encoding/json
转成json格式
2)encoding/xml
转成xml格式(比较复杂,无特殊要求,不推荐)
如果考虑人的可阅读性。找一个第3方的yaml或者toml包也可以,也是比较推荐的方法。yaml文件格式的可阅读性比json好。
这是一个yaml的格式样例
转成toml格式,toml和yaml和类似:
5)protobuf
如果更多考虑文件的压缩比。我觉得使用GRPC的protobuf格式也挺好的。输出格式是二进制流的。但是protobuf要编写.proto文件进行结构定义,使用较为复杂
mongodb使用的binary json格式,也是二进制的,但是压缩比似乎并不高,可能还是在mongodb里用好点
(其他回答有人提到了encoding/binary,但是这个库并没有直接Marshall和Unmarshal struct的方法)