多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
**1,步骤** 1)声明(定义)结构体,确定结构体名 2)编写结构体的字段 3)编写结构体的方法 **2,学生案例:** 1)编写一个Student结构体,包含name、gender、 age、 id、 score 字段,分别为string、 string、 int、int、float64 类型。 2)结构体中声明一个say方法,返回string 类型,方法返回信息中包含所有字段值 3)在main方法中,创建Student结构体实例(变量),并访问say方法,并将调用结果打印输出。 ![](https://img.kancloud.cn/67/e4/67e4ef9d09cb03214d7a8cd2a8bcb947_1028x720.png) <br> <br> ### **1:工厂模式** >说明 Golang的结构体没有构造函数,通常可以使用工厂模式来解决这个问题。 看一个需求 一个结构体的声明是这样的: ``` package model type Student struct { Name string... } ``` 因为这里的Student的首字母S是大写的,如果我们想在其它包创建Student的实例 (比如main包),引入model包后, 就可以直接创建Student结构体的变量(实例)。 **但是问题来了,如果首字母是小写的,比如是type student struct ...就不不行 了,怎么办----工厂模式来解决.** <br> <br> ### **2:案例演示** 使用工厂模式实现跨包创建结构体实例(变量)的案例: Student.go文件 ![](https://img.kancloud.cn/39/51/395104931ceff5c8d4fd193fb67d426f_1280x596.png) main.go文件 ![](https://img.kancloud.cn/ac/cd/accd87576123bfe1477cd86074a085c3_1280x687.png) <br> <br> ### **3:思考题:** 如果student结构体中的有一个小写score(私有的),main中如何使用 model.go文件 ![](https://img.kancloud.cn/d9/e6/d9e66a0c3a1bbad7cb23ca9ca834d826_1227x720.png) main.go文件 ![](https://img.kancloud.cn/f4/33/f4335fc383080d862008a864e7b8fc86_1280x613.png)