ins := 结构体类型名{
字段1: 字段1的值,
字段2: 字段2的值,
…
}
:分隔,键值对之间以,分隔。
type People struct {
name string
child *People
}
relation := &People{
name: "爷爷",
child: &People{
name: "爸爸",
child: &People{
name: "我",
},
},
}
代码说明如下:
提示:结构体成员中只能包含结构体的指针类型,包含非指针类型会引起编译错误。
ins := 结构体类型名{
字段1的值,
字段2的值,
…
}
type Address struct {
Province string
City string
ZipCode int
PhoneNumber string
}
addr := Address{
"四川",
"成都",
610000,
"0",
}
fmt.Println(addr)
运行代码,输出如下:
{四川 成都 610000 0}
ins := struct {
// 匿名结构体字段定义
字段1 字段类型1
字段2 字段类型2
…
}{
// 字段值初始化
初始化字段1: 字段1的值,
初始化字段2: 字段2的值,
…
}
ins := struct {
字段1 字段类型1
字段2 字段类型2
…
}
package main
import (
"fmt"
)
// 打印消息类型, 传入匿名结构体
func printMsgType(msg *struct {
id int
data string
}) {
// 使用动词%T打印msg的类型
fmt.Printf("%T\n", msg)
}
func main() {
// 实例化一个匿名结构体
msg := &struct { // 定义部分
id int
data string
}{ // 值初始化部分
1024,
"hello",
}
printMsgType(msg)
}
代码输出如下:
*struct { id int; data string }
代码说明如下: *struct{id int data string},因为类型没有使用 type 定义,所以需要在每次用到的地方进行定义。%T动词,将 msg 的类型名打印出来。
版权说明:Copyright © 广州松河信息科技有限公司 2005-2025 版权所有 粤ICP备16019765号
广州松河信息科技有限公司 版权所有