go语言知识点整理

一 基础内容

  • go语言基础

go run test.go 在线执行go文件。

go build test.go 编译产生二进制文件,相当于C语言的gcc命令。

  • 左大括号只能在每一句的最后,不能另起一行,否则报错。
  • 像python一样最后不需要用;结尾
  • 字符串的连接是+
  • 如果定义了一个变量而没有使用它,go编译器会报错。
  • go可以使用中文命名变量名。

二 数据类型

  • 数据类型有点接近单片机编程中出现的数据类型的样子。
  • 变量在初始化但是没有赋值的时候,整型和浮点型数字为0,字符串为空,布尔型为false。
  • 变量的初始化有三种形式
  1. var 变量名 数据类型
  2. var 变量名    该方式下会自动判断数据类型
  3. 变量名 := 数值 在使用这种方式创建新的变量的时候不能在前面已经使用var定义这个变量,否则会报错。

以上这三种创建变量的方式都可以进行批量创建变量。

Go常量

  1. const 变量名 空(隐式)或者变量的数据类型(显式)
  2. const也可以用于枚举const {kk = 0 ……}
  3. iota的作用是数行数,伴随const枚举出现,在const初始化的时候定义为0,之后每增加一航iota增加1。

运算符

  1. 跟C语言很接近,有自加和自减。
  2. |按位或 & 按位与
  3. &返回变量的存储地址

流程控制

  1. 没什么好说的,就是条件判断相当于C语言,但是在for中使用括号还是会出错,慎重。

数组

  1. var kk[7] int
  2. 创建自动大小的数组 var kk = […]float{1.0, 3.0s}
  3. 传递形参的时候有两种形式,一种是设定固定大小,另一种是不设定大小。

指针 一般写作ptr

  1. &取地址
  2. 命名方式 var 变量名 *变量数据类型
  3. 一个空指针一般为0或nil

存储

  1. 数组(不可变大小)切片(重点掌握 append和copy方法)MAP(相当于python中的字典,很有用)

错误处理

  1. 重点是defer recover和panic三个函数的使用

并发

  1. 这里的多线程使用go,比较方便,有线程间的通信,可以设置带有缓冲,支持异步传输。