分类:Golang
-
Gin源码分析 – 中间件 – Basic Auth
1 概述 本文将开始对Gin内置的中间件BasicAuth的使用以及内部实现进行分析,按照惯例首先给出一个使用BasicAuth的例子。 package main import (…
-
Gin源码分析 – 中间件 – Logger
1 介绍 本文将对Gin的内置中间件Logger进行分析,Gin在创建默认的Enginer时将添加到全局中间件中,代码如下。 // Default returns an Engin…
-
Gin源码分析 – 中间件 – 源码分析
1 介绍 上一篇文章对中间件的使用方法以及如何开发中间件进行了简要的概述,本文主要对Gin的中间件的相关代码进行分析,从而对中间件有更深入的理解。 2 数据结构 2.1 Route…
-
Gin源码分析 – 中间件 – 介绍及使用
1 介绍 中间件是Gin的精髓。一个个中间件组成一条中间件链,对HTTP Request请求进行拦截处理,实现了代码的解耦和分离,每个中间件只需要处理自己需要处理的业务。今天我们就…
-
golang 类型断言 VS 类型转换
golang 中类型断言和类型转换两个概念很容易困惑,它们看上去提供了相同的功能(把变量从一个类型转到类型)。但是 golang 为什么会有两个功能相似的概念呢?那么在本文中,我们…
-
Go 语言结构 – 数组(Array)和切片(Slices)详解
数组 数组是同一类型元素的集合。例如,整数集合 5,8,9,79,76 形成一个数组。Go 语言中不允许混合不同类型的元素,例如包含字符串和整数的数组。(如果是 interface…
-
Go 语言结构 – 集合(Map)详解
什么是map map 是在 Go 中将值(value)与键(key)关联的内置类型。通过相应的键可以获取到值。类似与Python中的字典。 如何创建map 通过向 make 函数传…
-
Go语言nil:空值/零值
在 Go 语言中,布尔类型的零值(初始值)为 false,数值类型的零值为 0,字符串类型的零值为空字符串””,而指针、切片、映射、通道、函数和接口的零值则…
-
Golang 58个坑 – 高级篇:52-58
52.使用指针作为方法的 receiver 只要值是可寻址的,就可以在值上直接调用指针方法。即是对一个方法,它的 receiver 是指针就足矣。 但不是所有值都是可寻址的,比如 …
-
Golang 58个坑 – 中级篇:36-51
36.关闭 HTTP 的响应体 使用 HTTP 标准库发起请求、获取响应时,即使你不从响应中读取任何数据或响应为空,都需要手动关闭响应体。新手很容易忘记手动关闭,或者写在了错误的位…
-
Golang 58个坑 – 初级篇:1-35
1.左大括号 { 不能单独放一行 在其他大多数语言中,{ 的位置你自行决定。Go比较特别,遵守分号注入规则(automatic semicolon injection):编译器会在…
-
Go 语言结构 – 高级篇(递归、类型转换、接口、错误处理、并发)
Go 语言递归函数 递归,就是在运行的过程中调用自己。 语法格式如下: func recursion() { recursion() /* 函数调用自身 */ } func …
-
Go 语言结构 – 高级篇(函数、变量作用域、数组、指针、结构体、切片、Range、Map)
Go 语言函数 函数是基本的代码块,用于执行一个任务。 Go 语言最少有个 main() 函数。 你可以通过函数来划分不同功能,逻辑上每个函数执行的是指定的任务。 函数声明告诉了编…
-
Go 语言结构 – 基础篇(语法、数据类型、变量、常量、运算符、条件语句)
Go 语言结构 Go Hello World 实例 Go 语言的基础组成有以下几个部分: 包声明 引入包 函数 变量 语句 & 表达式 注释 接下来让我们来看下简单的代码,…
-
Go语言单元测试
概述 测试不是Go语言独有的,其实在很多语言都有测试,例如:Go、Java、Python…,主要有如下优点: 代码可以随时测试,保证代码不会产生错误 写出更加高效的代码 单元测试 …
-
Go语言25个关键字
程序声明 1. import:导入包; 2. package:声明包名; 程序实体声明和定义 3. var:声明变量,如:var name type 或者 var name := …
-
Go版本管理工具GO111MODULE
在go1.11版本前,想要对go语言包进行管理,只能依赖第三方库实现,比如Vendor,GoVendor,GoDep,Dep,Glide等等。 1. 开启GO111MODULE 用…
-
Go 语言Linux环境安装
go语言介绍 Go语言为并发而生 go语言(或 Golang)是Google开发的开源编程语言,诞生于2006年1月2日下午15点4分5秒,于2009年11月开源,2012年发布g…