一 基础内容
- go语言基础
go run test.go 在线执行go文件。
go build test.go 编译产生二进制文件,相当于C语言的gcc命令。
- 左大括号只能在每一句的最后,不能另起一行,否则报错。
- 像python一样最后不需要用;结尾
- 字符串的连接是+
- 如果定义了一个变量而没有使用它,go编译器会报错。
- go可以使用中文命名变量名。
二 数据类型
- 数据类型有点接近单片机编程中出现的数据类型的样子。
- 变量在初始化但是没有赋值的时候,整型和浮点型数字为0,字符串为空,布尔型为false。
- 变量的初始化有三种形式
- var 变量名 数据类型
- var 变量名 该方式下会自动判断数据类型
- 变量名 := 数值 在使用这种方式创建新的变量的时候不能在前面已经使用var定义这个变量,否则会报错。
以上这三种创建变量的方式都可以进行批量创建变量。
Go常量
- const 变量名 空(隐式)或者变量的数据类型(显式)
- const也可以用于枚举const {kk = 0 ……}
- iota的作用是数行数,伴随const枚举出现,在const初始化的时候定义为0,之后每增加一航iota增加1。
运算符
- 跟C语言很接近,有自加和自减。
- |按位或 & 按位与
- &返回变量的存储地址
流程控制
- 没什么好说的,就是条件判断相当于C语言,但是在for中使用括号还是会出错,慎重。
数组
- var kk[7] int
- 创建自动大小的数组 var kk = […]float{1.0, 3.0s}
- 传递形参的时候有两种形式,一种是设定固定大小,另一种是不设定大小。
指针 一般写作ptr
- &取地址
- 命名方式 var 变量名 *变量数据类型
- 一个空指针一般为0或nil
存储
- 数组(不可变大小)切片(重点掌握 append和copy方法)MAP(相当于python中的字典,很有用)
错误处理
- 重点是defer recover和panic三个函数的使用
并发
- 这里的多线程使用go,比较方便,有线程间的通信,可以设置带有缓冲,支持异步传输。