go

前言

安装 结构 基础语法 数据类型 变量 常量 运算符 条件语句 循环语句 函数 变量作用域 数组 指针 结构 切片 范围 散列表 递归函数 类型转换 方法 接口 错误处理 补充笔记 异常处

前言

Go 基础学习 Go 开发遇到的坑

前言

记录 go 开发遇到的坑 不使用短变量声明 := json 解析成结构体 module 不要在 vscode 工作区打开工程 同一包不同源文件变量声明时不要带包名 有时候新定义的变量或者函数不能

go 互斥锁

sync.Mutex sync.Mutex 互斥:保证每次只有一个 goroutine 可以访问一个共享的变量 go 标准库提供 sync.Mutex 互斥锁类型及两个方法: Lock 和 Unlock 在代码前调用 Lock,在代码后调用 Unlock 保证这段代码

go 函数

函数 function 函数用法 函数值 匿名函数 可变函数 variadic function 方法 vs 函数 方法的值接收者 vs 函数的值参数 方法的指针接收者和函数的指针参数 函数 function 函数是基本的代码块,用于

go 切片

slice slice 长度和容量 append 追加到 slice copy 对 slice 拷贝 对 slice 切片 slice vs array 创建 array 和 slice 切片底层是数组 使用 make 函数创建 slice slice 内存储 slice 内存优化 slice 切片是对数组的抽象,是一种“动态

go 包

package 默认导入 导出包内标识符 导入包的重命名 Go 编译速度快 导入匿名包 包的初始化入口 init 内部包 包的文档化 package package pkg_name定义程序属于哪个包,每个 go 文

go 变量

变量声明使用关键字 var。可以用于包内或函数内 变量声明 指定类型不赋值,使用默认值 var vname vtype = value 提供初始化值时可省略类型,根据初始化值自行判定变量

go 变量作用域

函数内定义的变量是局部变量,只作用于函数体内,参数和返回值都是局部变量 函数外定义的变量是全局变量,全局变量可在整个包甚至外部包(导出后)使用

go 基础语法

行分隔符:一行就是一个语句;多个语句放一行需要手动加;,但是不建议 注释不被编译,但是建议每个包一个注释 标识符:用于命名变量、类型等程序实体,