Go

Go #

Context
Context # 声明 # type Context interface { //接口 Deadline() (deadline time.Time, ok bool) //截止时间 Done() <-chan struct{} //协程是否结束,返回只读通道结构体 Err() error //错误信息,返回error类型 Value(key any) any //存储数据 } 数据传递 # package main import ( "context" "fmt" ) func main() { ctx := context.Background() ctx = context.WithValue(ctx, "access_token", "123") GetUser(ctx) } func GetUser(ctx context.Context) { accessToken := ctx.Value("access_token") fmt.Println(accessToken) } 取消协程 WithCancel # 可以假设这样一个场景,用户想要查看订单记录,开启查询一个协程,但这是一个耗时操作,所以可能会中途取消。用户取消了查询,那么这个协程就应该停止,how? package main import ( "context" "fmt" "sync" "time" ) var wait = sync.
Gin
Gin # 终于来哩! Gin 是一个 Go (Golang) 编写的轻量级 http web 框架 Gin 的官网:https://gin-gonic.com/zh-cn/ Gin Github 地址:https://github.com/gin-gonic/gin 环境搭建 # 下载&安装 在项目目录下面执行 go get -u github.com/gin-gonic/gin 将 gin 引入到代码中 import "github.com/gin-gonic/gin" 新建Main.go package main import "github.com/gin-gonic/gin" func main() { r := gin.Default() r.GET("/", func(c *gin.Context) { c.String(200, "value %v", "hello gin") }) r.Run() r.Run(":9000")//若改变端口 } Gin,启动! go run main.go golang 程序的热加载 # 所谓热加载就是当我们对代码进行修改时,程序能够自动重新加载并执行,这在我们开发中是非常便利的,可以快速进行代码测试,省去了每次手动重新编译 工具 1(推荐):https://github.com/gravityblast/fresh go get github.com/pilu/fresh go run github.com/pilu/fresh 工具 2:https://github.
Go语言入门
Go语言入门 # 语言处理系统 # 解释型 # python javascript 编译型 # go c++ 混合体 # java 变量与类型 # 变量的内涵 # 执行环境中的数据的存储区域 强类型与弱类型 # 变量的声明与赋值 # var name type = expression name := expression //只能在函数里用 变量名 # Go变量名以数字、字母或下划线组成,允许任何被视为字母或数字的Unicode字符 所以$\pi$也可以 变量生命周期 # 和C++差不多,略 作用域 # 函数外部和函数内部有同名变量时,就近原则 运算符优先级 # 运算符种类几乎和C++一样,略 程序控制结构 # 选择结构 # if-else # if exp{ }else if{ }else{ } 注意,else一定要跟在}后面 switch-case # switch var1{ case val1: case val2,val3: default: } switch{ case exp1: case exp2: default: } 循环结构 # 完整C风格for循环 # for i:=0;i<10;i++{ fmt.