ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
值类型和引用类型 值类型:int、float、bool、string、数组、结构体struct 引用类型:指针、切片slice、map、管道chan、interface 值类型在拷贝的时候是拷贝值,引用类型拷贝的是指针 ``` type 结构体名称 struct{ field1 int field2 string Field3 float32//开头大写,可以被其他包访问 } type user struct { password string Nickname string     Scores [5]float64//数组     ptr *int//指针     slice []int//切片 map1 map[string]string //map } var u1 user var u2 user = User{...}//按顺序放字段 var u3 user = User{ password:"123", Nickname:"123123",//与PHP不同,必须带逗号 } var u4 *user = new(user) (*u4).Nickname = "3"//标准写法 u4.Nickname = "abc"//等价于标准写法,为了使用方便底层特定设计 var u5 *user = &user{} ``` 结构体别名会被认为新的数据类型,但是可以强制转换 > JSON输出 ``` u := user{ password: "123", Nickname: "123123", } u.password = "22333" data, err := json.Marshal(u)//只能转换首字母大写的字段 if err != nil {      fmt.Println("json encodeing err", err) return } fmt.Println(string(data)) //使用tag标签解决字段首字母大写的问题,Nickname->nickname type user struct { password string Nickname string `json:"nickname"` } ```