分类:Golang
-
golang的两把利器,协程和管道
协程非常容易引发并发问题 我们先看下列程序 func main() { res := make(map[int]int) for i := 0; i < 100; i++ {…
-
go 面试题
1、关于init函数,下面说法正确的是() A. 一个包中,可以包含多个init函数 B. 程序编译时,先执行导入包的init函数,再执行本包内的init函数 C. main包中,…
-
go基础语法夺命连环问,你能坚持到第几问?
变量 简短声明的变量需要注意啥 简短声明的变量只能在函数内部使用 struct 的变量字段不能使用 := 来赋值 不能用简短声明方式来单独为一个变量重复声明, := 左侧至少有一个…
-
golang笔记 | 面试
1、在进行项目开发时,遇到的关于golang的问题有哪些? 可简单描述工作中用到的东西,协程,通道,框架、加密等等,说一些关键的技术点 2、golang中关于grpc和rest都使…
-
Go 组件 Context 源码学习笔记
为什么要使用 Context? Go 强大而简洁的并发能力 要论 go 最津津乐道的功能莫过于 go 强大而简洁的并发能力。 func main(){ go func(){ fmt…
-
Gin源码分析 – 参数校验之Validator库
前言 Gin框架使用 github.com/go-playground/validator进行参数校验,只需要在定义结构体时使用binding或validate tag标识相关校验…
-
Gin源码分析 – Context之FormFile
1 介绍 本文介绍Gin提供的上传文件的相关方法以及相关的源码,在Context中提供了FormFile用于获取上传文件的基本信息,提供了SaveUploadedFile用于实现文…
-
Gin源码分析 – Context之PostForm
1 介绍 对于表单数据的获取Gin也提供了一组方法,本文将对这组方法的使用以及源码进行详细的分析,下面的例子模拟一个最简单的登陆。 package main import ( “n…
-
Gin源码分析 – Context之渲染(JSON)
1 介绍 首先用一个例子,介绍一下相关函数的用法,然后通过源码分析一下具体的实现方法。 package main import ( “net/http” “github.com/g…
-
Gin源码分析 – Context之Bind
1 介绍 本小节主要介绍上下文的Bind相关函数。Bind函数的主要目的是自动提取HTTP请求中的各种参数到结构体中。下面给出了一个例子,该列子中调用Context.ShouldB…
-
Gin源码分析 – Context之Query
1 介绍 Gin中可以方便的获取URL中的查询参数,或者也可以简称为URL参数,此类参数以?为起点,后面的k=v&k1=v1&k2=v2这样的字符串就是查询参数,本…
-
Gin源码分析 – Context功能概述
1 介绍 从前面的介绍可以了解到整个Gin由Engine、Route、Context等几个主要组成。Context是Gin框架中非常重要的一点,它允许我们在中间件间共享变量,管理整…
-
Gin源码分析 – Engine结构体
Engine源码结构体 当我们在使用Gin框架来创建一个HTTP服务时,首先我们需要初始化一个实例,在Engine结构体中就包含了实例的一些基本属性和实例化的一些方法。 Engin…
-
Gin源码分析 – net/http的大概流程
1 gin框架预览 上图大概是gin里面比较重要的模块. 从gin的官方第一个demo入手. package main import “github.com/gin-gonic/g…
-
Gin源码分析 – Radix树
Radix树 树(Trie) 是计算机科学领域的专有名词 ,有时候也是用 Tree 来替代,这两者基本是同义词。 换句话说,树是有组织的数据结构,用来存储经常动态变化的数据,单条数…
-
Gin源码分析 – HttpRouter路由原理
1、Trie树和Radix树的区别 1.1 Trie树(前缀树、字典树) Trie树特点 根节点不包含字符,除根节点外每一个节点都只包含一个字符; 从根节点到某一节点,路径上经过的…
-
Gin源码分析 – 程序运行流程简介
介绍 gin 框架基于 httprouter 实现最重要的路由模块,采用Radix树数据结构来存储路由与handle方法的映射,也是框架高性能的原因。 Engine:容器对象,整个…
-
Gin源码分析 – 中间件 – JWT认证机制
Github地址:https://github.com/golang-jwt/jwt 文档地址:https://pkg.go.dev/github.com/golang-jwt/j…
-
Gin源码分析 – 中间件 – Gzip
1 介绍 本文介绍中间件Gzip的使用以及源码实现。 2 使用 首先下载该中间件 go get github.com/gin-contrib/gzip 编写如下的代码 packag…
-
Gin源码分析 – 中间件 – Recovery
1 介绍 Recovery中间件,能够捕获HTTP请求处理过程中产生的所有panic,并返回500错误。 2 使用 下面给出两个例子进行说明。第一个例子没有使用Recovery中间…