封装了两个方法,数据源为map和struct(map数据源表头和数据需要自己排序) // ExportExcelByMap 导出excel 数据源为[]map func ExportExcelByMap(c *gin.Context, titleList []string, data []map[string]inter...
go
golang反射自定义tag
golang reflect包实现了反射。动态的获得程序运行时对象的结构和信息。 reflect 包中提供了两个基础的关于反射的函数来获取上述的接口和结构体: func TypeOf(i interface{}) Type func ValueOf(i inter...
golang字符串操作
字符串操作 package main import ( "fmt" "strings" ) func main() { str := "hello world" //contains 是否包含指定字符串 fmt.Println(strings.Contains(str, "hello")) ...
Golang实现定时任务
Golang实现定时任务 package main import ( "fmt" "github.com/robfig/cron/v3" ) func main() { // 每天凌晨0点执行一次:0 0 0 * * ? // 每隔3秒执行一次:*/3 * * * * * // spec := "*/...
go接口返回空数组
go语言nil返回接口时是null,前端同事要求返回[]空数组,代码片段如下: res := g.Map{ "list": menus, "statusOptions": statusOptions, "typeOptions": typeOptions, "fields"...
base64 的四种编码方式
事情的起因是这样的: 在做 siber 项目的时候,有接口使用 []byte 类型数据接收文件流。 // proto 定义 bytes file_data = 1; 但是 siber 是统一使用 json 格式进行的 request body 定义,不能直接传输...
使用Golang 实现websocket进阶封装
package garbage import ( "errors" "log" "net/http" "sync" "time" "github.com/gorilla/websocket" ) const ( // 允许等待的写入时间 writeWait = 10 * t...
Go语言实现websocket服务器
websocket应用场景: 1、即时通信。比如QQ,微信这些。 2、站内消息推送,比如打开qq时会提示xx用户已上线之类在app或者网站内部的消息。 3、实时数据获取。比如地理位置,用户是否在线等需要实时获取的...
密码保护:golang http.ServeFile预览图片读取图片
func View(c *gin.Context) { imgpath := c.Param("imgpath ") //imgpath := "./uploads/"+mux.Vars(r)["imgid"] http.ServeFile(c.Writer, c.Request, imgpath) } /前端显示图片 func Dow...
golang – 多模块工作区(multi-module workspaces)
go的多模块工作区是从1.18 版本开始的,所以要使用它首先要确认go 的版本。 $go version go version go1.18 windows/amd64 一下教程介绍了一个多模块工作区的用例。在多模块工作区中创建两个模块,对这些...