![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Golang
文章平均质量分 72
一江溪水
这个作者很懒,什么都没留下…
展开
-
GO 中的 init 函数
go语言中有一个非常神奇的函数init,它可以在所有程序执行开始前被执行,并且每个package下面可以存在多个init函数,我们一起来看看这个奇怪的init函数。原创 2023-02-12 14:57:52 · 1974 阅读 · 1 评论 -
全链路追踪 jaeger
Jaeger是Uber开发并开源的一款分布式追踪系统,兼容分布式跟踪信息传递分布式事务监控问题分析服务依赖性分析性能优化。原创 2023-01-24 00:25:34 · 2115 阅读 · 0 评论 -
http 库的服务端实现
上两篇文章介绍了 http 客户端的实现,这篇文章看一下服务端的实现服务端的代码看主逻辑主要是看两部分,一个是注册处理器,标准库使用map进行存储,本质是一个静态索引,同时维护了一个切片,用来做前缀匹配,只要以/结尾的,都会在切片中存储;原创 2022-12-24 17:21:16 · 1206 阅读 · 1 评论 -
net/http 库的客户端实现(下)
上一篇文章我们讲了net/http库客户端 request 的构建,接下来继续讲构建HTTP请求之后的处理操作原创 2022-12-24 16:06:40 · 925 阅读 · 0 评论 -
net/http 库的客户端实现(上)
Go语言标准库net/http是一个非常强大的标准库,使得构建HTTP请求和编写Web服务器的工作变得非常简单。我们来看看是他是如何实现客户端和服务端的。原创 2022-12-17 17:20:02 · 632 阅读 · 0 评论 -
gin 集成 Swagger
一个好的项目工程,必然离不开一个好的 API 文档,如果要自己编写 API 文档,维护起来比较困难,而且难以保证一致性,因此我们要自动生成在线接口文档。swagger 在 java 里面,是一个非常流行的 api 组件,他们维护了 go 版本 swaggo,可以通过 Swagger 2.0 自动生成RESTful API 文档。安装到 $PATH若 的 目录下面没有 文件,需要 若 没有加入 中,需要将其可执行文件移动到 下检查安装出现这原创 2022-12-04 15:47:51 · 880 阅读 · 0 评论 -
gin 统一响应结果
使用 gin 框架,编写 api 接口时,需要定义返回格式,这种方法有一个弊端,每次返回都需要写这个结构封装统一结果定义统一结构体使用这样在每个HandlerFunc 方法只需要使用 result 下面的方法即可,统一管理,还可以定义统一的错误码原创 2022-12-03 23:35:57 · 1374 阅读 · 1 评论 -
golang的new和make
string 的零值是"",int 的零值是0,引用类型的零值是nil。前面两种类型可以直接使用,但如果把它改成指针,就会报错原创 2022-11-26 23:49:52 · 428 阅读 · 0 评论 -
Golang 数据结构之 Slice (三)
前言Golang 数据结构之 Slice (二)上一篇文章介绍了一下扩容的基本情况,这一篇文章分析要 growslice 函数的源码源码我们看看 growslice函数的源码,可以分成三部分:func growslice(et *_type, old slice, cap int) slice { if raceenabled { callerpc := getcallerpc(unsafe.Pointer(&et)) racereadrangepc(old.array, uin原创 2022-05-08 15:36:14 · 499 阅读 · 1 评论 -
Golang 数据结构之 Slice (二)
前言Golang 数据结构之 Slice (一)上一篇文章写了Slice的基本数据结构,而且提到了Slice可以自动扩容,这篇文章就简单看看Slice是怎么样扩容的。append函数说扩容之前,不得不说一下 Slice 内置的 append 函数,这是一个用于向slice 追加元素的函数func main(){ var nums []int for i := 0; i < 10; i++ { nums = append(nums, i) } fmt.Printf("nu原创 2022-05-07 22:12:13 · 490 阅读 · 0 评论 -
Golang 数据结构之 Slice (一)
Golang 数据结构之 Slice前言Slice(切片)是抽象在 Array(数组)之上的特殊的数据类型类型,在了解slice之前需要先了解一下Array的情况。Array 数组Array数组就是 Golang 的基本数据类型中的数字,是一种顺序存储结构。用法func main() { nums := [4]int{} nums[0] = 1 nums[2] = 3 fmt.Printf("nums: %v\n", nums) fmt.Printf("nums[2]: %d\n",原创 2022-05-04 22:21:49 · 1131 阅读 · 0 评论