Go - Struct 结构体
程序员文章站
2022-07-09 21:18:25
[TOC] 概述 结构体是将零个或多个任意类型的变量,组合在一起的聚合数据类型,也可以看做是数据的集合。 声明结构体 运行结果: 生成 JSON //demo_12.go package main import ( "encoding/json" "fmt" ) type Result struct ......
目录
概述
结构体是将零个或多个任意类型的变量,组合在一起的聚合数据类型,也可以看做是数据的集合。
声明结构体
//demo_11.go package main import ( "fmt" ) type person struct { name string age int } func main() { var p1 person p1.name = "tom" p1.age = 30 fmt.println("p1 =", p1) var p2 = person{name:"burke", age:31} fmt.println("p2 =", p2) p3 := person{name:"aaron", age:32} fmt.println("p2 =", p3) //匿名结构体 p4 := struct { name string age int } {name:"匿名", age:33} fmt.println("p4 =", p4) }
运行结果:
生成 json
//demo_12.go package main import ( "encoding/json" "fmt" ) type result struct { code int `json:"code"` message string `json:"msg"` } func main() { var res result res.code = 200 res.message = "success" //序列化 jsons, errs := json.marshal(res) if errs != nil { fmt.println("json marshal error:", errs) } fmt.println("json data :", string(jsons)) //反序列化 var res2 result errs = json.unmarshal(jsons, &res2) if errs != nil { fmt.println("json unmarshal error:", errs) } fmt.println("res2 :", res2) }
运行结果:
改变数据
//demo_13.go package main import ( "encoding/json" "fmt" ) type result struct { code int `json:"code"` message string `json:"msg"` } func main() { var res result res.code = 200 res.message = "success" tojson(&res) setdata(&res) tojson(&res) } func setdata (res *result) { res.code = 500 res.message = "fail" } func tojson (res *result) { jsons, errs := json.marshal(res) if errs != nil { fmt.println("json marshal error:", errs) } fmt.println("json data :", string(jsons)) }
运行结果:
推荐阅读
本文欢迎转发,转发请注明作者和出处,谢谢!