go

Go语言Test功能测试函数详解

Go语言的 testing 包提供了三种测试方式,分别是单元(功能)测试、性能(压力)测试和覆盖率测试。 单元(功能)测试 在同一文件夹下创建两个Go语言文件,分别命名为 demo.go 和 demt_test.go,如下图所示:...

go 使用 Protobuf

Protobuf核心的工具集是C++语言开发的,在官方的protoc编译器中并不支持Go语言。要想基于上面的hello.proto文件生成相应的Go代码,需要安装相应的插件。首先是安装官方的protoc工具,可以从 https://github.com/g...

密码保护:Go语言:gRPC调用进阶

在上节课内容中,我们学习了使用gRPC框架实现服务的调用编程。在gRPC框架中,诸如上节课我们学习的在客户端与服务端之间通过消息结构体定义的方式来传递数据,我们称之为“单项RPC”,也称之为简单模式。除此之外,...

GORM—物理删除,软删除

如果有DeletedAt *time.Time sql:"index",其实是软删除 删除记录 删除记录时,请确保主键字段有值,GORM 会通过主键去删除记录,如果主键为空,GORM 会删除该 model 的所有记录。 // 删除现有记录 db....

Golang导出并下载excel封装

封装了两个方法,数据源为map和struct(map数据源表头和数据需要自己排序) // ExportExcelByMap 导出excel 数据源为[]map func ExportExcelByMap(c *gin.Context, titleList []string, data []map[string]inter...

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")) ...