[TOC]
### **结构体比较问题**
* 结构体只能比较是否相等,但是不能比较大小。
* 相同类型的结构体才能够进行比较,结构体是否相同不但与属性类型有关,还与属性顺序相关
* 如果 struct 的所有成员都可以比较,则该 struct 就可以通过 == 或 != 进行比较是否相等,比较时逐个项进行比较,如果每一项都相等,则两个结构体才相等,否则不相等
### **类型别名与类型定义的区别**
* 注意类型别名的定义时 =
~~~go
type MyInt1 int //新的类型
type MyInt2 = int //int的类型别名
~~~
### **init() 函数有几个需要注意的地方**
* init() 函数是用于程序执行前做包的初始化的函数,比如初始化包里的变量等;
* 一个包可以出线多个 init() 函数,一个源文件也可以包含多个 init() 函数;
* 同一个包中多个 init() 函数的执行顺序没有明确定义,但是不同包的init函数是根据包导入的依赖关系决定的(看下图);
* init() 函数在代码中不能被显示调用、不能被引用(赋值给函数变量),否则出现编译错误;
* 一个包被引用多次,如 A import B,C import B,A import C,B 被引用多次,但 B 包只会初始化一次;
* 引入包,不可出现死循坏。即 A import B,B import A,这种情况编译失败;![](https://img.kancloud.cn/e4/3d/e43dd7d5182b61a30c7c1ad7de58b71b_948x419.png)
### **数组比较问题**
数组只有相同类型才能比较,否则报错
即:类型和长度都相同才能比较,而且是比较是否相等
### **结构体比较问题**
### **结构体比较问题**
### **结构体比较问题**
### **关键字**
![](https://img.kancloud.cn/18/73/1873c0756fc23aaf3e4fc9cf13b37804_1128x300.png)
- Go准备工作
- 依赖管理
- Go基础
- 1、变量和常量
- 2、基本数据类型
- 3、运算符
- 4、流程控制
- 5、数组
- 数组声明和初始化
- 遍历
- 数组是值类型
- 6、切片
- 定义
- slice其他内容
- 7、map
- 8、函数
- 函数基础
- 函数进阶
- 9、指针
- 10、结构体
- 类型别名和自定义类型
- 结构体
- 11、接口
- 12、反射
- 13、并发
- 14、网络编程
- 15、单元测试
- Go常用库/包
- Context
- time
- strings/strconv
- file
- http
- Go常用第三方包
- Go优化
- Go问题排查
- Go框架
- 基础知识点的思考
- 面试题
- 八股文
- 操作系统
- 整理一份资料
- interface
- array
- slice
- map
- MUTEX
- RWMUTEX
- Channel
- waitGroup
- context
- reflect
- gc
- GMP和CSP
- Select
- Docker
- 基本命令
- dockerfile
- docker-compose
- rpc和grpc
- consul和etcd
- ETCD
- consul
- gin
- 一些小点
- 树
- K8s
- ES
- pprof
- mycat
- nginx
- 整理后的面试题
- 基础
- Map
- Chan
- GC
- GMP
- 并发
- 内存
- 算法
- docker