这是我参与「第五届青训营 」伴学笔记创作活动的第 1天今天的主要学习内容是go的基础语法和三个简单实战案例。
Go语言基础
本视频主要介绍了Go语言的特点、开发环境、使用情况和基础语法。
1.Go语言特性
高性能、高并发
语法简单、学习周期短
丰富的标准库
完善的工具链,具备性能优化等许多功能
快速编译
静态链接,可移植性好
Go的特点决定了学习期不像其他语言那么长,可以在较短时间内开始使用Go语言进行开发。 同时可以解决一些使用其他语言带来的问题,比如python有版本依赖问题。
2.开发环境
安装:
go.dev/
studygolang.com/dl
goproxy.cn/
IDE:
VScode、Goland、基于云环境开发(gitpod.io/#github.com…)
3.基础语法
变量
Go是强类型语言,每一个变量都有变量类型
变量定义:var a = float64(值)或a := float64(值)
控制语句
- if-else
语法类似C/C++,区别是: 条件不加括号
if后直接加大括号,不能像C一样把if里边的语句写在同一行
package main
import"fmt"
func main(){
if 7%2 == 0 {
fmt.Println("7 is even")
}else{
fmt.Println("7 is odd")
}
}
- for
条件也无括号 - while
- 无while使用
for {}+break来代替 - switch
case默认有break,不用break可以跳出case,不用跑完其他分支
可以使用任意的变量类型,可以取代任意的if-else语句
数组
定义:var a = [5]int
初始化:a := [2]int{1,2} 隐式:a := [...]int{1,2}
真实业务多用切片,数组定长,切片长度可变
切片
Go有类似python的切片功能
创建切片有三种方式:
var 切片名 [ ]数据类型
切片名 := [ ]类型{ }
使用make()函数:make(切片类型,长度,容量)
指针
功能有限,主要用途:支持对传入的参数进行修改
结构体
结构体是带类型的字段的集合,定义
type 结构体名 struct{}
除此之外
还包括JSON处理、时间处理、数字解析、进程信息等许多知识点
3.实战案例
猜数:生成随机整数,输入猜测值,输出输入值与生成值的差异,直到猜中为止。
在线词典:命令行版本的词典,实现查询单词,通过第三方API。
SOCKS5:代理服务器,实现授权用户通过单个端口访问内部所有资源。