一、基础
1、类型
基础类型
Go 自带基础类型有如下:
| 类型 | 长度 | 默认值 | 说明 |
|---|---|---|---|
| bool | 1 | false | |
| byte | 1 | 0 | uint8 别名 |
| int, uint | 4, 8 | 0 | 默认整数类型,不同平台使用不同长度32或64位 |
| int8, uint8 | 1 | 0 | -128 |
| int16, uint16 | 2 | 0 | -32768 |
| int32, uint32 | 4 | 0 | -21亿 |
| int64, uint64 | 8 | 0 | |
| float32 | 4 | 0.0 | |
| float64 | 8 | 0.0 | 默认浮点类型 |
| complex64 | 8 | ||
| complex128 | 16 | ||
| rune | 4 | 0 | int32 别名 |
| uintptr | 4, 8 | 0 | 存储指针的 uint |
| string | “” | 默认空字符串而不是 NULL | |
| array | |||
| struct | |||
| function | nil | ||
| interface | nil | ||
| map | nil | 引用类型 | |
| slice | nil | 引用类型 | |
| channel | nil | 引用类型 |
1 | // strconv 包用来在不同类型间转换: |
自定义类型
Go 中自定义类型有二种方式:
- 基于现有的基础类型创建,也就是别名。别名只能继承基础类型的操作符,其他方法等都不能继承。
- 自定义结构体、方法。
1 | // 别名,别名只能继承基础类型的操作符,其他方法等都不能继承 |
2、表达式
1 | // Go 中自增自减只能后置不能前置,而且必须放在单独的一行语句中而不能放在表达式中 |
3、函数
Go 中函数有一些限制:不支持默认参数、不支持函数重载。
函数在 Go 中是第一类对象,具有相同参数和返回类型的函数是同一类型。
1 | // 以下三个方法是同一类型 |
二、GO 商城
1、RabbitMQ
RabbitMQ 主要使用场景:流量削峰、异步处理、应用解耦。
RabbitMQ 安装依赖 Erlang。