Go语言的 testing 包提供了三种测试方式,分别是单元(功能)测试、性能(压力)测试和覆盖率测试。 单元(功能)测试 在同一文件夹下创建两个Go语言文件,分别命名为 demo.go 和 demt_test.go,如下图所示:...
go
go 使用 Protobuf
Protobuf核心的工具集是C++语言开发的,在官方的protoc编译器中并不支持Go语言。要想基于上面的hello.proto文件生成相应的Go代码,需要安装相应的插件。首先是安装官方的protoc工具,可以从 https://github.com/g...
go grpc 使用案例
1.创建 .proto文件 syntax = "proto3"; option go_package="/proto"; package Business; service Hello { rpc Say (SayRequest) returns (SayResponse); } message SayResponse { bytes Re...
密码保护:Go语言:gRPC调用进阶
在上节课内容中,我们学习了使用gRPC框架实现服务的调用编程。在gRPC框架中,诸如上节课我们学习的在客户端与服务端之间通过消息结构体定义的方式来传递数据,我们称之为“单项RPC”,也称之为简单模式。除此之外,...
Go语言:gRPC框架使用实现gRPC编程
本节课通过编程实现gRPC编程。 定义服务 我们想要实现的是通过gRPC框架进行远程服务调用,首先第一步应该是要有服务。利用之前所掌握的内容,gRPC框架支持对服务的定义和生成。gRPC框架默认使用protocol buff...
GORM—物理删除,软删除
如果有DeletedAt *time.Time sql:"index",其实是软删除 删除记录 删除记录时,请确保主键字段有值,GORM 会通过主键去删除记录,如果主键为空,GORM 会删除该 model 的所有记录。 // 删除现有记录 db....
golang gin 框架实现 oauth2
1. 获取依赖包 go get github.com/gin-gonic/gin go get gopkg.in/oauth2.v3 go get github.com/google/uuid 2. 项目结构和源码 项目地址 3. 主要文件说明 main.go package main import ( "...
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")) ...