# 18.4 结构体
- 创建:
```go
type struct1 struct {
field1 type1
field2 type2
…
}
ms := new(struct1)
```
- 初始化:
```go
ms := &struct1{10, 15.5, "Chris"}
```
当结构体的命名以大写字母开头时,该结构体在包外可见。
通常情况下,为每个结构体定义一个构建函数,并推荐使用构建函数初始化结构体(参考[例 10.2](examples/chapter_10/person.go)):
```go
ms := Newstruct1{10, 15.5, "Chris"}
func Newstruct1(n int, f float32, name string) *struct1 {
return &struct1{n, f, name}
}
```
## 链接
- [目录](directory.md)
- 上一节:[映射](18.3.md)
- 下一节:[接口](18.5.md)