安装 结构 基础语法 数据类型 变量 常量 运算符 条件语句 循环语句 函数 变量作用域 数组 指针 结构 切片 范围 散列表 递归函数 类型转换 方法 接口 错误处理 补充笔记 异常处
记录 go 开发遇到的坑 不使用短变量声明 := json 解析成结构体 module 不要在 vscode 工作区打开工程 同一包不同源文件变量声明时不要带包名 有时候新定义的变量或者函数不能
sync.Mutex sync.Mutex 互斥:保证每次只有一个 goroutine 可以访问一个共享的变量 go 标准库提供 sync.Mutex 互斥锁类型及两个方法: Lock 和 Unlock 在代码前调用 Lock,在代码后调用 Unlock 保证这段代码
函数 function 函数用法 函数值 匿名函数 可变函数 variadic function 方法 vs 函数 方法的值接收者 vs 函数的值参数 方法的指针接收者和函数的指针参数 函数 function 函数是基本的代码块,用于
slice slice 长度和容量 append 追加到 slice copy 对 slice 拷贝 对 slice 切片 slice vs array 创建 array 和 slice 切片底层是数组 使用 make 函数创建 slice slice 内存储 slice 内存优化 slice 切片是对数组的抽象,是一种“动态
package 默认导入 导出包内标识符 导入包的重命名 Go 编译速度快 导入匿名包 包的初始化入口 init 内部包 包的文档化 package package pkg_name定义程序属于哪个包,每个 go 文
变量声明使用关键字 var。可以用于包内或函数内 变量声明 指定类型不赋值,使用默认值 var vname vtype = value 提供初始化值时可省略类型,根据初始化值自行判定变量
函数内定义的变量是局部变量,只作用于函数体内,参数和返回值都是局部变量 函数外定义的变量是全局变量,全局变量可在整个包甚至外部包(导出后)使用
行分隔符:一行就是一个语句;多个语句放一行需要手动加;,但是不建议 注释不被编译,但是建议每个包一个注释 标识符:用于命名变量、类型等程序实体,