Go基础语法 | 青训营

25 阅读2分钟

Go Go语言特点:

  1. 高性能、高并发 2.语法简单、学习曲线平缓(只有for循环)
  2. 丰富的标准库
  3. 完善的工具链
  4. 静态链接 6.快速编译 7.跨平台 8.垃圾回收 Go变量声明: var 变量名=value 变量名:=value 常量将var改为const,常量没有确定的类型,会根据使用的上下文自动确定类型 if-else: if后所跟条件无括号,if后必须跟大括号 循环: for后条件无括号,不写条件为死循环 switch: 条件不需要括号,case中不需要写break 数组: 先声明后初始化 一维数组: var 数组名 [数组大小] 数组元素的数据类型{} //{}代表将数组声明的同时将他初始化一下 例如: var array = [10]int{1, 2, 3, 4, 5, 6, 7, 8, 9, 0} 多维数组: 二维数组是最简单的多维数组 声明方式如下: var 数组名 [][][]...[][]数组类型 二维数组声明 var 数组名 [x][y] 数据类型 可以认为x是行y是列 切片: 用make()创建切片,与python切片方法类似 map: make(map[key类型]value类型)创建map delete删除k-v对 golang中map完全无序 range: 遍历 var myarray1 = [10]int{1, 2, 3, 4, 5, 6, 7, 8, 9, 0} for _, temp := range myarray1 { fmt.Println(temp) } 函数: 变量类型后置 指针: 对传入的参数进行修改 结构体: type name struct 结构体能够作为函数的参数 结构体方法能够自己定义 错误处理: 函数中要有err error 字符串操作 字符串格式化: printf中可用%v打印任意类型变量,%+v得到更详细的结果(字段名字和值),%#v更详细(构造类型名称、字段名字和值) JSON处理: 时间处理 数字解析: strconv包 进程信息 Gorountine调用函数时在函数前➕go关键字即可调用协程 CSP 提倡通过通信共享内存,但也保留了通过共享内存实现通信 Channel make(chan 元素类型,[缓冲大小) 无缓冲通道 make(chan int) 有缓冲通道 make(chan int,2) GOPATH bin项目编译的二进制文件 pkg项目编译的中间产物,加速编译 src项目源码 依赖管理三要素 1.配置文件,描述依赖。 go.mod 2.中心仓库管理依赖库。 proxy 3.本地工具。 go get/mod indirect非直接依赖 init 初始化,创建go.mod文件 download 下载模块到本地缓存 tidy 增加需要的依赖,删除不需要的依赖