方式 1-直接声明
案例演示: var person Person
前面我们已经说了。
Ø 方式 2-{}
案例演示: var person Person = Person{}
Ø 方式 3-&
案例: var person *Person = new (Person)
Ø 方式 4-{}
案例: var person *Person = &Person{}
Ø 说明:
1) 第 3 种和第 4 种方式返回的是 结构体指针。
2) 结构体指针访问字段的标准方式应该是:(*结构体指针).字段名 ,比如 (*person).Name = “tom”
3) 但 go 做了一个简化,也支持 结构体指针.字段名, 比如 person.Name = “tom”。更加符合程序员 使用的习惯,go 编译器底层 对 person.Name 做了转化 (*person).Name。
10.1.13 struct 类型的内存分配机制
Ø 看一个思考题
输出的结果是: p2.Name = tom p1.Name = 小明
Ø 基本说明
Ø 结构体在内存中示意图
Ø 看下面代码,并分析原因
输出的结果是:
上面代码对应的内存图的分析:
Ø 看下面代码,并分析原因