[TOC]
## 自定义类型
Go语言中可以使用`type`关键字来定义自定义类型。
~~~go
//将MyInt定义为int类型
type MyInt int
~~~
通过`type`关键字的定义,`MyInt`就是一种新的类型,它具有`int`的特性。
## 类型别名
~~~go
type TypeAlias = Type
~~~
`rune`和`byte`就是类型别名,定义如下:
~~~go
type byte = uint8
type rune = int32
~~~
## 类型定义和类型别名的区别
~~~go
//类型定义
type NewInt int
//类型别名
type MyInt = int
func main() {
var a NewInt
var b MyInt
fmt.Printf("type of a:%T\n", a) //type of a:main.NewInt
fmt.Printf("type of b:%T\n", b) //type of b:int
}
~~~
结果显示a的类型是`main.NewInt`,表示main包下定义的`NewInt`类型。b的类型是`int`。`MyInt`类型只会在代码中存在,编译完成时并不会有`MyInt`类型。
- 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