- Go语言简介
- 开发环境
- 基础语法
- 标准库
1.什么是Go语言
Go语言是谷歌出品的一门计算机编程语言,Go语言具有以下特点:
- 高性能,高并发
- 语法简单,学习曲线平缓
- 丰富的标准库
- 完善的工具链
- 静态链接
- 快速编译
- 跨平台
- 垃圾回收
2.开发环境
https://go.dev/ Go语言官方网站
https://studygolang.com/dl Go语言国内镜像网站
https://goproxy.cn/ 下载第三方包
- 集成开发环境:Goland、Visual Studio Code
- 基于云的开发环境:hi-hi.cn/gitpod
3.基础语法
-
打印hello world
package main import ( "fmt" ) func main() { fmt.Println("hello world") } -
声明变量
- Go语言是一种强类型语言,每个变量都有自己的类型。常用的类型有:字符串,整形,浮点型,bool型。
- Go语言中字符串是内置类型,可以通过'+'进行拼接,也可以通过用'='比较两个字符串。
- Go语言中大部分运算符优先级和C语言或者C++语言一致声明变量有两种方式: var 变量名 = "value" //此方法可以自动推导变量类型 var 变量名 变量类型 = "value" //显示变量名形式 变量名 := 变量类型(value) const 变量名 类型 = "value" //声明常量,可自动确定类型
- if else
- 类似于C/C++if else,与之不同的是if后面没有括号。
4. 循环
- Go中只存在for循环
- 可以用continue继续循环,break跳出循环
- switch
- 类似于C/C++,但是相比之下Go语言中switch后不存在括号,也不需要break语句来结束case
-
Go语言中switch可以进行比对任意结构类型,或者取代if else语句(不在switch后面加变量,在每一个case里面写条件分支)
- 数组
- 切片
- 切片不同于数组,他是一个可变长度的数组,可以进行任意时刻更改长度。
- 可以通过make创建切片,创建的切片可以像一个数组进行使用。
- 切片可以用append增加元素,并且赋值回去。(因为在Go语言中,slice的原理是存储了一个长度与一个容量还有一个指向数组的指针,在执行append操作时,如果容量不够,会进行自动扩容并且返回一个新的slice,必须要返回赋值)
- 可以用copy在两个切片中,进行拷贝数值。
- slice可以进行切片取值
- map
- 可以用make创建一个空map: make(map[string]int)
- 用delete可以删除map中key-value
- 可以通过赋值时加ok来进行判断是否存在该ket-value
- range
- 对于slice和map遍历可以采用range
- range遍历可以更加的快速、简洁
- 函数
- Go语言中函数的参数的变量类型是后置的,返回值都会传回两个,第二个返回值用来判断是否存在
- 指针
- Go语言中指针对比C/C++使用方法十分有限,主要用途是对于常用的参数进行修改
- 结构体
- 带类型的字段的集合
- 下面为结构体举例
- 结构体方法
- 类似于类成员函数
- 字符串操作
Contains(str,"子串"); //判断一个字符串是否包含另一个字符串
Count(str,"子串"); //字符串计数
Index(str,"目标字符串"); //查找某个字符串的位置
Join(str1,str2); //连接多个字符串
Repeat(str,num); //重复多个字符串
len(str); //获取字符串长度
15. 字符串格式化
- JSON处理
- 时间处理
- 数字解析
- 在strconv(StringConvert)包下
- 可以用ParseFloat和ParseInt解析字符串
- 可以用Atoi将字符串转为数字,反之用Itoa
- 进程信息
- 可以用os.Args获取进程执行过程中一些命令行参数
- 可以用os.Getenv和os.Setenv获取写入环境变量
- 可以用exec.Command快速启动子进程,获取其输入输出