Go常用命令
Golang常用工具参考地址:
https://www.topgoer.cn/docs/go-tool/go-tool-1e1hmuk5danv3
Go社区中的包地址:
https://pkg.go.dev/
Github中文社区地址:
https://www.github-zh.com
Golang参考博客:
https://zh.mojotv.cn/
客户端应用框架:
- Tauri
- Electron
- fyne
- wails: https://wails.golang.ac.cn/docs/introduction/
web后台框架参考:
- https://arco.design/vue //字节跳动出品
前端应用的框架:
- https://uniapp.dcloud.net.cn/
GUI框架(基于GTK):
https://github.com/gotk3/gotk3
游戏引擎:
- godot 官方文档:https://docs.godotengine.org/zh-cn/4.x/index.html
- unity
机器人、物理计算、物联网框架:
- Gobot
性能分析工具:
- pprof
常用命令
- go run abc.go :运行go文件
- go build abc.go :编译go文件生成二进制文件
- GOCACHE=off go build //构建禁用缓存(linux系统)
- go build -n abc.go //只是打印go build执行过程,并不真正的编译
- GOOS=windows GOARCH=amd64 go build -o app.exe app.go //编译为amd64位windows
- GOOS=windows GOARCH=386 go build -o app.exe app.go //编译为32位windows
- GOOS=linux GOARCH=amd64 go build -o applinux app.go //编译为amd64位的linux
- GOOS=linux GOARCH=386 go build -o app app.go //编译为32位的linux
- go install abc.go :编译并且安装包和依赖。分两步,编译生成结果文件,将结果文件移到GOPATH/pkg或者GOPATH/bin目录下
- go get :下载并安装包和依赖。分为两步,下载所需的依赖包,编译并安装
- go vet abc.go :检测代码的常见错误
- fmt.Printf:把格式字符串输出到标准输出,一般是屏幕,可重定向
- fmt.Sprintf:把格式字符串输出到指定字符串中,并返回字符串,可以用于赋值操作
- fmt.Fprintf:把格式字符串输出到指定文件设备中
- fmt.Errorf:通过格式化功能描述错误消息,并返回error,可用于函数返回
- go fmt abc.go :将abc.go文件格式化显示,相当于将代码格式化下,更有利于阅读
- 双引号(“”):双引号里的字符串可以转义,不能换行
- 反引号(“):反引号里面的内容不能转义,可以换行,一般用于SQL语句,html等大段内容,以及正则表达式的使用
- 单引号(”);单引号,一般只能用来包裹一个字节的ASCII码字符,例如:var asc byte = ‘a’
- go env -w GOPROXY=https://goproxy.cn :配置代理,解决go get 下载包超时问题
- CGO_ENABLED=0 go build main.go :将go文件编译成alpine版本,否则启动会报错
- log.Fatal(err) :报告错误并停止运行程序
- go doc fmt :获得包fmt的文档,查看包fmt的使用信息
- go doc strconv Itoa :查看包stsrconv中的函数Itoa的信息,用法
- go doc gin RouterGroup.GET:查询gin包下的RouterGroup结构体下的GET方法
- go fix main.go : 修正指定代码包中过时的语法和代码调用
- sort.Strings(slice) :对切片元素按照字母排序
- time.Now().Unix() : 获取当前时间戳,单位为秒
- time.Now().UnixNano() : 获取当前时间戳,单位为纳秒
- time.Now(): 获取当前时间
- time.Now().Year(): 获取年
- time.Now().Month(): 获取月
- time.Now().Day(): 获取日
- time.Now().Hour(): 获取时
- time.Now().Minute(): 获取分
- time.Now().Second(): 获取秒
- time.Now().Nanosecond(): 获取纳秒
- fmt.Println(err.Error()):将错误信息转换为字符串输出,Error()为golang自带的接口error中的方法
- return:结束当前函数,并返回指定值
- runtime.Goexit:结束当前
goroutine,其他的goroutine不受影响,主程序也一样继续运行 - os.Exit():立即退出应用程序、defer不执行
- log.Fatal():打印输出内容、退出应用程序、defer不执行
- strings.TrimSpace(str) :去除字符串str左右两边的空格
- strings.Split(a, “.”) //对字符串a以.为分隔符进行切割,切割后的元素组成为一个切片
- strings.Join(a, “_”) //对字符串切片进行拼接,例如a := []string{“hello”,”world”} 拼接后为hello_world
- strings.Contains(“helloworldabcderffg”,”hello”) //判断字符串中是否包含字符串hello
- io.EOF:读取内容完毕后,再也读不到就会返回io.EOF
- go help build //查看go build用法
- go tool link //该命令链接Go的归档文件比如静态库,以及链接其所有依赖,生成一个可执行文件(含main package)
- go fmt a.go //格式化代码
- reflect.DeepEqual()可用于比较变量是否相等,也可以比较map
- go list std //列出所有已安装的标准库
- go clean -cache //清楚当前项目的构建缓存
- go clean -modcache //清除所有模块缓存(包括依赖包)
- go clean -testcache //清除测试缓存
- go clean -cache -modcache -testcache //彻底清理所有缓存
常用函数方法
- os.ReadDir() //读取目录内容
- reflect.DeepEqual() //用于比较array,struct,map,slice是否相等
中间件:
中间件用途之一可以用来jwt和gin之间作为桥梁进行连接,在请求api的时候进行jwt认证
全局中间件:
//初始化Engine实例
router := gin.New()
//一次设置多个中间件
router.Use(Logger(), Recovery())
//一次设置一个中间件
router.Use(gin.Logger())
router.Use(gin.Recovery())
路由组中间件:
//在声明路由组的同时设置路由组中间件
authorized := router.Group("/", Middleware())
//先声明路由组然后再通过use进行设置
authorized := router.Group("/")
authorized.Use(Middleware())
单个路由中间件:
//单个路由设置单个中间件
router.GET("/login", LoginMiddleware, handler) //handler表示路由处理程序如:api.Login
//单个路由设置多个中间件
router.GET("/mid", TimeMiddleware, CookieMiddleware(), handler)
常用库github地址
定时任务地址: github.com/robfig/cron
grpc地址: github.com/grpc/grpc-go/releases/tag/v1.50.1
处理float64四舍五入:github.com/shopspring/decimal
强制类型转换包com: github.com/unknwon/com
web框架gin地址: github.com/gin-gonic/gin
web框架lris地址: https://www.iris-go.com/
Windows-gui库walk: github.com/lxn/walk
walk文档地址: pkg.go.dev/github.com/lxn/walk
go-redis: github.com/redis/go-redis
go-es客户端: github.com/elastic/go-elasticsearch
读取yaml配置文件: gopkg.in/yaml.v2
读取配置文件: github.com/spf13/viper(可读JSON, TOML, YAML, HCL, .env, and Java properties)
基于Go的CLI程序: github.com/spf13/cobra
读取.env文件: github.com/joho/godotenv
日期时间库: github.com/golang-module/carbon
数据库对象关系映射: gorm.io/gorm(SQLite, PostgreSQL和MySQL等)
网页爬虫框架: github.com/gocolly/colly
机器学习: github.com/nlpodyssey/spago
图片验证码: github.com/mojocn/base64Captcha
vue3-element-admin地址
https://github.com/youlaitech/vue3-element-admin