golang
文章平均质量分 52
xujingzhong0077
这个作者很懒,什么都没留下…
展开
-
一个简单的main函数
我们先来看看一个最简单的http服务端的实现 12345678910 // http服务func main() { mux := http.NewServeMux() mux.HandleFunc("/hello", hello) http.ListenAndServe(":8080", mux)}func hello(w http.ResponseWriter, r *http.Request) { fmt.Println("hell原创 2022-02-21 11:49:41 · 970 阅读 · 0 评论 -
GO语言之recover
运行panic异常一旦被引发就会导致程序崩溃,这当然不是我们愿意看到的,go语言提供乐专用于“拦截”运行时panic的内建函数-recover,它可以是当前的程序从运行时panic的状态中恢复并重新获得流程控制权。 注意:recover只有在defer调用的函数中有效 如果调用了内置函数recover,并且定义该defer语句的函数发生了panic异常,recover会使用程序从panic中恢复,并且返回panic value,导致panic异常的函数不会继续执行,但能正常返回。在未原创 2022-02-21 11:15:54 · 2264 阅读 · 0 评论 -
Golang defer 与 MySQL 连接关闭的陷阱 (database is closed)
在 golang 某些 orm 中,你经常会看到这种用法:func main() { db, err := gorm.Open("sqlite3", "test.db") if err != nil { panic("failed to connect database") } defer db.Close() // db 操作}在主逻辑中使用 defer 最后关闭连接是没有问题的。如果是在模块化开发,我们把一些数据库连接的操作封装到函数中,就不能带有 de原创 2021-12-22 17:21:01 · 3803 阅读 · 0 评论 -
go的数组指针、切片指针与结构体指针
1.数组指针 (1)数组指针与指针数组 这俩概念原本在c语言中就是一个绕口令般的存在,尽管从类型角度来看两者并没什么相似的地方。 但是在go语言中对这两个类型的设定做出了一些不同的规定。首先交代一下基本概念: 数组指针:指的是一个指针,只不过这个指针指向了一个数组 eg: var arr [5]int = [5]int{1,2,3,4,5}; ...转载 2021-12-22 09:05:54 · 2168 阅读 · 1 评论 -
cannot find module providing package github.com/gin-gonic/gin: 安装gin后找不到gin包
使用代理下载gin后,出现了找不到包的问题,后来发现若使用代理,他会去pkg包下找依赖。解决在使用 GOPROXY 的时候,开启了 GO111MODULE,导致包管理非官方所说的在 $GOPATH\src\,而是去了 $GOPATH\src\pkg\目录下,此时就需要用go mod引入这些包 require github.com/gin-gonic/gin@latest ,解决import获取不了包的问题。也就是运行以下两条命令➜ ~ go mod init gingo: creati原创 2021-12-21 16:44:25 · 660 阅读 · 1 评论