打印变量
| |
定义变量
空变量
| |
变量赋值
| |
变量类型推断
| |
变量类型推断简写
推荐写法,但是不适合用于函数外使用
| |
包内推荐
| |
变量类型
内建变量类型
- bool, string
- (u)int, (u)int8, (u)int16, (u)int32, (u)int64, uintptr # 有u为无符号,uintptr为指针
- byte, rune # rune相当于char类型
- float32, float64, complex64, complex128 # complex代表复数
- 类型转为需要显示强制转换
定义常量
常量赋值
定义常量,可以指定类型,可以自动替换不是推断
| |
枚举类型
普通枚举
| |
自增值枚举
| |
iota可以参与运算
| |
条件语句
if
普通写法
| |
循环写法
| |
switch
- switch 有表达式的写法
| |
- switch 没有表达式的写法
| |
循环
for循环
简单循环
| |
无起始条件
| |
无起始条件,无递增条件,只有结束条件
| |
无结束条件
死循环
| |
函数
func
匿名函数
func关键字后没有函数名
| |
可变参数列表
… 代表不定参数数量
| |
指针
- * 代表指针
- &代表引用
数组
定义数组
数组是值类型
| |
循环数组
| |
切片(slice)
不是值类型,是数组的一个view
- slices可以向后扩展,不可以向前扩展
- 注意区分len,cap的概念
定义切片
| |
slice的向后扩展
| |
slice的添加
- 添加元素的时候不用考虑原caps,超过的时候会自动分配新的数组
- 必须有接收对象
| |
创建slice
| |
copy slice
| |
删除 slice
删除中间的元素
| |
删除头尾
| |
Map
定义map
| |
遍历map
| |
获取value
| |
删除元素
| |
字符串
中文转换
| |
面向对象
- 仅支持封装,不支持继承和多态
- go语言没有class,只有struct
- 不论地址还是结构本身,一律使用 .来访问成员
结构定义
| |
封装
- 名字一般使用CamelCase
- 首字母大写:public
- 首字母小写:private
扩充(继承)
组合
| |
别名
| |
接口
定义
| |
实现
| |
调用
| |