package main
import "fmt"
type Person struct {
name string
sex string
age int
}
type Student struct {
//只有类型,没有名字,匿名字段,继承了Person的成员
Person
id int
addr string
}
func main() {
//顺序初始化
s1 :=Student{Person{"hello","男",18},1,"sz"}
fmt.Println("s1=",s1)
//%+v,显示内容更详细
fmt.Printf("s1 =%+v\n",s1)
//指定成员初始化,没有初始化显示为0
s2 :=Student{id:1}
fmt.Printf("s2= %+v\n",s2)
}
成员操作
package main
import "fmt"
type Person1 struct {
name string
sex string
age int
}
type Student1 struct {
Person1
id int
addr string
}
func main() {
s1 :=Student1{Person1{"hello","女",18},1,"深圳"}
s1.name = "world"
s1.sex ="女"
s1.age=18
s1.addr="Chain"
s1.id=1
s1.Person1 =Person1{"张三","男",20}
fmt.Println(s1.name,s1.age,s1.id,s1.sex,s1.addr)
}
通过结构体生成json
package main
import (
"encoding/json"
"fmt"
)
//成员变量名首字母必须大写
type IT struct {
Company string
Subject []string
Isok bool
Price float64
}
func main() {
//定义结构体变量,同时初始化
s := IT{"haha",[]string{"go","C++","python"},true,444.44}
//result ,err :=json.Marshal(s)
//格式化编码输出
result ,err :=json.MarshalIndent(s,""," ")
if err !=nil {
fmt.Println("err=",err)
return
}
fmt.Println("result= ",string(result))
}
匿名字段初始化package mainimport "fmt"type Person struct { name string sex string age int }type Student struct { //只有类型,没有名字,匿名字段,继承了Person的成员 Person id int addr string}func main() { /...