
go
文章平均质量分 91
止语---
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
go项目实战二
✅使用 .proto 文件定义接口 + google.api.http 注解✅ 使用 grpc-gateway 自动生成 RESTful 网关✅ 模型、仓储、服务、接口模块清晰分离✅ CreatedAt 动态生成(基于 GORM 的 autoCreateTime)✅ 同时支持 gRPC 和 HTTP/JSON。原创 2025-07-24 22:51:20 · 620 阅读 · 0 评论 -
go项目实战
在v1";body: "*"body: "*"为了生成 Go 代码,您需要使用protoc编译器以及相关的插件。首先,确保您已经安装了protoc和必要的插件。然后,在项目根目录下注意:我们使用了 google/api/annotations.proto,需要下载这个文件到本地或通过 proto import path解析然后编译时加上参数。或者使用之所以要下载这个,因为目录下就有我们需要的文件。执行上述下载命令之后,就会将。原创 2025-07-16 22:22:19 · 941 阅读 · 0 评论 -
go编解码json和http请求
json是日常工作中http请求的最重要的数据格式。对比日常使用的json,获得http请求后json.loads和json.dumps函数,go中显的非常麻烦,这里结合json和http请求的总结下,便于积累和学习。这里给出一个json的类型,包括了数组对象等各种格式,以请求云计算的伸缩组的接口为例这个是调用DescribeScalingGroups接口查询指定ScalingGroupId参数的响应结果。这里先声明两个概念序列化和反序列化就是将对象转化成二进制序列的过程。我们把变量称之为。原创 2025-04-29 22:31:30 · 1193 阅读 · 0 评论 -
Go Test测试教程
go中测试既有类似有pytest中的功能测试,也有benchMark的基准测试,以及单元测试(Unit TestsUT).这里从单元测试UT引入本篇的话题,单元测试的重要性不言而喻,尤其在大型项目中跨团队合作时,无法mr合格的代码,很容易影响整个团队的交付进度和质量。或者会说直接debug,但是当你的代码是几千行的时候,这个时候debug似乎也比较累,那单元测试就能覆盖上述情况。如何写好单元测试呢?测试用例编写是基础。比如如何编写单个测试函数和单个测试方法,如何做基准测试,如何Mock。原创 2023-03-13 22:14:50 · 3733 阅读 · 0 评论 -
go实现rsa和aes加解密
密码学中两大经典算法,一个是对称加解密,具有代表性的是AES加解密,另一个是非对称加解密,代表性的是RSA加解密。那什么事对称和非对称呢?对称加密算法又称为传统密码算法,加密密钥和解密密钥是相同的。对称加密算法要求通信双方在开始通信前,要首先商定一个用于加密和解密的密钥。算法的安全性就依赖于这个密钥,如果这个密钥被泄露了,就意味着通信不再安全非对称加密算法是现代密码学取得的最大成就之一,也是密码学近20年来能够快速发展和推广应用的主要原因之一。原创 2023-03-06 21:40:02 · 1157 阅读 · 0 评论 -
gRPC简介
messagemessage:protobul定义了一个消息类型是通过关键字message字段指定,消息就是要传输的数据格式的定义,message类似go中的struct,在消息中承载的数据分别对应的是一个字段,每个字段都有一个名字和一种类型。required:消息体中的必填字段,不设置时会导致编码异常,在protobf2中使用,在protobuf3中删除optional:消息体中的可选字段,protobuf3中取消了required和optional等说明关键字,默认都是optional。原创 2023-02-26 11:04:43 · 2981 阅读 · 0 评论 -
go面向对象思想封装继承多态
go貌似都没有听说过继承,当然这个继承不像c++中通过class类的方式去继承,还是通过struct的方式,所以go严格来说不是面向对象编程的语言,c++和java才是,不过还是可以基于自身的一些的特性实现面向对象的功能,面向对象三大特性:封装、继承、多态。原创 2023-02-25 11:14:35 · 860 阅读 · 1 评论 -
go单元测试
接着上一篇中的go module创建项目calc为例,在simplemath包中,是使用在命令行中使用交互式的方式进行测试,现在可以为这几个函数实现单元测试,go test,这个测试工具来自于 Go 官方的gc工具链。运行go test命令将执行当前目录下的包的测试代码,它会寻找*_test.go文件,并在这些文件中,寻找符合命名的函数和参数(即,接收*testing.T参数的函数,命名为TestXxxXxx可以是任何不以小写字符开头的名字)。这个测试代码不会影响正常的编译过程,只在执行。原创 2023-02-24 22:40:25 · 634 阅读 · 0 评论 -
go module构建项目
go module是go新的依赖包管理系统,go module 是go语言从1.11版本之后官方推出的版本管理工具,基于vgo演变而来,是一个新型的包管理工具,在go1.11和go1.12该功能还在试验阶段,从go 1.13开始,go module 成为了go语言默认的依赖管理工具,从go1.14开始已经用于生产环境,并且鼓励所有用户从其他依赖包管理系统迁移到go module。原创 2023-02-24 22:09:05 · 1639 阅读 · 0 评论 -
go数据结构
go语言中提供了包括数组,结构体,映射,切片等数据结构,当然指针也可以作为一种数据类型来学习和沉淀。Ken Thompson(肯·汤普森)和Rob Pike(罗布·派克)创建go语言时,吸取了目前现有主流语言的一些特点,因为Ken Thompson是C语言的主要创造者之一,因此可能从其角度理解,指针和结构体是很好的一种数据类型,因此go语言中也有该数据结构。 虽然这里是介绍go的主要数据结构,但是先普及一点Go诞生的小知识:计算机硬件技术更新频繁,性能提高很快。目前主流的编程语言发展明...原创 2021-09-05 21:31:01 · 2265 阅读 · 0 评论 -
go数据类型转
Go语言中数据类型转换不像C中,不同类型的变量之间赋值时必须使用显式转换,也就是Golang中数据类型不能自动转换。基本语法:表达式T(var)将var值转换成T类型T:就是数据类型,比如int32,int64var:就是需要转换的变量var i int = 42var f float64= float64(i)Go中,数据类型可以从低精度转换为高精度,也可以从高精度转换为低精度被转换的是变量存储的数据值,而变量本身的数据类型并没有发生变化在转换中,比如将int64 转换成int8【转载 2021-08-28 17:42:05 · 575 阅读 · 0 评论 -
golang使用iota
最近学习起了go语言,发现runoob上的入门写的较为简单,但是仍不是很理解,找了一些资料学习下。iota是golang语言的常量计数器,只能在常量的表达式中使用;这里首先表明了iota的作用。iota在const关键字出现时将被重置为0(const内部的第一行之前),const中每新增一行常量声明将使iota计数一次(iota可理解为const语句块中的行索引)。使用iota能简化定义,...原创 2019-04-07 16:03:55 · 1463 阅读 · 0 评论