七叶笔记 » golang编程 » golang2021面向对象(7)创建结构体变量和访问结构体字段

golang2021面向对象(7)创建结构体变量和访问结构体字段

方式 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 = 小明

Ø        基本说明

 

Ø        结构体在内存中示意图

 

 

 

Ø        看下面代码,并分析原因

 

输出的结果是:

 

上面代码对应的内存图的分析:

 

Ø        看下面代码,并分析原因

 

 

相关文章