go杂货铺
Posted hongpeng0209
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了go杂货铺相关的知识,希望对你有一定的参考价值。
json序列化
内存中变成可存储或传输的过程称之为序列化(dict,split,struct转string)
package main import ( "encoding/json" "fmt" ) type Stu struct { Name string Age int } func JsonDump() (ret string, err error) { stu1 := Stu{ Name: "somebody", Age: 20, } data, err := json.Marshal(stu1) if err != nil { err = fmt.Errorf("json dump failed:", err) return } ret = string(data) fmt.Println(ret) return } func main() { JsonDump() }
json反序列化
磁盘读取到内存
需要先定义一个存储的数据类型(map struct),string要转成byte
package main import ( "encoding/json" "fmt" ) type Stu struct { Name string Age int } func JsonDump() (ret string, err error) { stu1 := Stu{ Name: "somebody", Age: 20, } data, err := json.Marshal(stu1) if err != nil { err = fmt.Errorf("json dump failed:", err) return } ret = string(data) return } func JsonLoad(res string) (ret interface{}, err error) { var stu Stu err = json.Unmarshal([]byte(res), &stu) if err != nil { err = fmt.Errorf("json loads failed:", err) return } ret = stu return } func main() { response, _ := JsonDump() res, _ := JsonLoad(response) fmt.Println(res) }
命令行参数的解析
flag模块
package main import ( "flag" "fmt" ) func main() { var confPath string var command string var port int flag.StringVar(&confPath, "c", "conf", "conf file of app")//变量名 -c 默认值 描述 flag.StringVar(&command, "a", "online", "command to execute") flag.IntVar(&port, "p", 10000, "port of service") flag.Parse() fmt.Println(confPath) fmt.Println(command) fmt.Println(port) }
以上是关于go杂货铺的主要内容,如果未能解决你的问题,请参考以下文章
[Go] 通过 17 个简短代码片段,切底弄懂 channel 基础
解决go: go.mod file not found in current directory or any parent directory; see ‘go help modules‘(代码片段