斜杠golang

golang之JWT实现

什么是JSON Web Token? JSON Web Token(JWT)是一个开放标准(RFC 7519),它定义了一种紧凑且自包含的方式,用于在各方之间以JSON方式安全地传输信息。由于此信息是经过数字签名的,因此可以被验证和信任。可以使用秘密(使用HMAC算法)或使用RSA或ECDSA的公钥 ......
golang JWT

golang之数据验证validator

https://blog.csdn.net/guyan0319/article/details/105918559/ 前言在web应用中经常会遇到数据验证问题,普通的验证方法比较繁琐,这里介绍一个使用比较多的包validator。 原理将验证规则写在struct对字段tag里,再通过反射(refle ......
validator 数据 golang

golang之context

context 用来解决 goroutine 之间退出通知、元数据传递的功能。 context 使用起来非常方便。源码里对外提供了一个创建根节点 context 的函数: func Background() Context background 是一个空的 context, 它不能被取消,没有值,也 ......
context golang

golang之http请求库go-resty

github: https://github.com/go-resty/resty go-resty 特性# go-resty 有很多特性: 发起 GET, POST, PUT, DELETE, HEAD, PATCH, OPTIONS, etc. 请求 简单的链式书写 自动解析 JSON 和 XM ......
go-resty golang resty http go

golang之errors包

errors包常用方法 func Unwrap(err error) error // 获得err包含下一层错误 func Is(err, target error) bool // 判断err是否包含target func As(err error, target interface{}) boo ......
golang errors

Golang开发新手常犯的50个错误

《50 Shades of Go: Traps, Gotchas, and Common Mistakes for New Golang Devs》 原文地址:http://devs.cloudimmunity.com/gotchas-and-common-mistakes-in-go-golang ......
错误 新手 Golang

Golang Copy 制整个文件夹或单个文件; //Move 文件

// Copy 制整个文件夹或单个文件 func Copy(from, to string) error {​​​ f, e := os.Stat(from) if e != nil {​​​​​​​​​​ fmt.Println("没有找到要拷贝的路径:", from) return e }​​​ ......
文件 单个 文件夹 Golang Copy

正则表达式/\\\\/四个反斜杠

本文摘自:https://blog.csdn.net/zttaiwx/article/details/53981755 ,放在自己博客后续方便查看 在字符串中,两个反斜杠被解释为一个反斜杠,然后在作为正则表达式, \\ 则被正则表达式引擎解释为 \,所以在正则表达式中需要使用四个反斜杠。 也就是说, ......
斜杠 正则 表达式

什么是有用“/”“\” 正反斜杠怎么区别

为什么“\”与“/”的用法不同 一般都用正斜杠 /一般都用正斜杠 /一般都用正斜杠 / windows系统的地址用反斜杠 \转义字符用反斜杠 \ 例子: \一般就是escape,很多时候\后面的字符原本都是会被识别成关键字,你非要表示它们的话就加一个\ 例如正则里你不能直接用 . 和* , 这两个符 ......
斜杠 有用

golang对于[]byte数组转string进行比较的优化

当需要比较两个`[]byte`数组是否相等时有好几种方案,下面可以看出前三种方案都是优化过的,效率高的方案。 ```go package main import ( "bytes" "crypto/rand" mr "math/rand" "testing" ) func StringEqual(n ......
数组 golang string byte

【解决一个小问题】golang 的 `-race`选项导致 unsafe代码 panic

**作者:张富春(ahfuzhang),转载时请注明作者和引用链接,谢谢!** * [cnblogs博客](https://www.cnblogs.com/ahfuzhang/) * [zhihu](https://www.zhihu.com/people/ahfuzhang/posts) * [G ......
代码 golang unsafe 问题 panic

golang 遍历并批量压缩图片

package main import ( "bytes" "fmt" "image" "io/ioutil" "mylog" "os" "path" "github.com/nfnt/resize" _ "image/gif" "image/jpeg" _ "image/png" ) func m ......
golang 图片

Golang Println、Printf、Sprintf的区别(笔记)

Println :可以打印出字符串,和变量 Printf : 只可以打印出格式化的字符串,可以输出字符串类型的变量,不可以输出整形变量和整形 Sprintf:用传入的格式化规则符将传入的变量格式化,(终端中不会有显示),返回为 格式化后的字符串 ......
Println Sprintf 笔记 Golang Printf

golang 实现cas

相比sync.WaitGroup里面的互斥锁,cas可以实现无锁等待一组任务执行完成后释放,示例代码如下 ```go func TestCAS(t *testing.T) { var count int32 = 10000 for i := 0; i 0 { } t.Log("task exec f ......
golang cas

golang 闭包,装饰器

``` package main import ( "fmt" "strings" ) func makeSuffixFunc(suffix string) func(string) string { return func(name string) string { if !strings.Has ......
闭包 golang

golang之fmt格式化

常用fmt中用于格式化的占位符 普通占位符 占位符 说明 举例 输出 %v 相应值的默认格式。 Printf("%v", people) {zhangsan}, %+v 打印结构体时,会添加字段名 Printf("%+v", people) {Name:zhangsan} %#v 相应值的Go语法表 ......
格式 golang fmt

Golang 应用脚手架

Nunu 提供了全面的文档和示例,帮助你快速入门。它还包括一套测试套件,确保你的应用程序按预期工作。 安装要求 要使用 Nunu,你需要在系统上安装以下软件: Golang 1.16 或更高版本 Git MySQL 5.7 或更高版本(可选) Redis(可选) 安装 你可以通过一行命令安装 Nun ......
脚手架 Golang

golang 访问 http 请求下载资源

正常情况下,下面这段代码可以获取到`响应结构体的字节流`,反序列化一下就能得到响应结构体,当 url 是一个互联网对象资源时,即访问该 url 是用来下载资源时,下面这段代码获取到的就是`被资源的二进制流` ```golang func HttpGet(url string) ([]byte, er ......
golang 资源 http

Golang全栈开发----Golang基础知识

第一章 基础语法 1. 注释 注释就是对代码的解释和说明,其目的是让人们能够更加轻松地了解代码。注释是开发人员一个非常重要的习惯,也是专业的一种表现。单行注释是最常见的注释形式,你可以在任何地方使用以 // 开头的单行注释。多行注释也叫块注释,均已以 /* 开头,并以 */ 结尾。 单行注释:ctr ......
Golang 基础知识 基础 知识

Golang 定时任务 github/robfig/cron/v3

robfig/cron/v3 是一个 Golang 的定时任务库,支持 cron 表达式。低耦合高内聚,其中涉及装饰器模式,并发处理等。 package main import "github.com/robfig/cron/v3" c := cron.New() // 添加一个任务,每 30 分钟 ......
任务 Golang github robfig cron

golang之jwt

golang-jwt是go语言中用来生成和解析jwt的一个第三方库。本文中使用目前最新的v5版本。 安装 go get -u github.com/golang-jwt/jwt/v5 在代码中引用 import "github.com/golang-jwt/jwt/v5" 结构体 假设jwt原始的p ......
golang jwt

golang 系列:sync.Once 讲解

sync.Once 介绍 之前提到过 Go 的并发辅助对象:WaitGroup。同样的, sync.Once 也是 Go 官方的一并发辅助对象,它能够让函数方法只执行一次,达到类似 init 函数的效果。我们来看看它的简单用法: func main() { var once sync.Once on ......
golang Once sync

golang实现设计模式汇总-创建型 | 结构型 | 行为型

历时一个多星期的常用设计模式暂告一段落,今天汇总下使用频率较高的几种常见设计模式。 以下个人根据类型分为3种,不喜勿喷: * 创建型 * 结构型 * 行为型 ### 1.创建型 常用如下: * [单例模式](https://juejin.cn/post/7238604003599974456) * ......
结构型 设计模式 行为 模式 结构

golang实现设计模式之代理模式-优缺点,适用场景

`代理模式`作为一种结构型的设计模式,因为某种原因,需要对访问的对象通过代理访问目标对象,访问对象不适合或者不能直接引用该目标对象,代理就成为访问对象和目标对象的中介。 **结构** * 1.抽象主题(Subject)类。通过接口或抽象类声明真实主题和代理对象实现的业务方法。 * 2.真实主题(Re ......
模式 设计模式 优缺点 场景 golang

golang实现设计模式之策略模式-优缺点,适用场景

`策略模式`是一种行为型的设计模式,该模式定义了一系列算法,并将每个算法封装起来,使它们可以相互替换,且算法的变化不会影响使用算法的客户,或者认为把使用算法的责任和算法的实现分割开来,并委派给不同的对象对这些算法进行管理。 **结构** * 1.抽象策略(Strategy)类。定义了一个公共接口,各 ......
模式 设计模式 优缺点 场景 策略

golang实现设计模式之模板模式-优缺点,适用场景

`模板模式`是一种行为型设计模式,其定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。 **特点** * 1.算法结构已确定。 * 2.具体实现交由子类实现。 **结构** * 1.抽象类(Abstract Class)。算 ......
模式 设计模式 优缺点 场景 模板

golang实现设计模式之装饰器模式-优缺点,适用场景

`装饰器模式`是一种结构型设计模式,简单概括就是:不改变先有对象结构下,动态给对象增加一些职责。 装饰器模式通过组合方式实现,与继承的异同: * 使用继承方式,具有静态特征,耦合度高,并且随着扩展功能的增多,子类会很膨胀。 * 使用组合方式,创建装饰对象来装饰真实对象,原对象功能不变,另外扩展。 * ......
模式 设计模式 优缺点 场景 golang

golang实现设计模式之组合模式-优缺点与适用场景

`组合模式`是一种将对象组合成树状的层次结构的模式,用来表示“整体-部分”的关系,使用户对单个对象和组合对象具有一致的访问性,属于结构型设计模式。 **结构** * `抽象构件(Component)角色`:它的主要作用是为树叶构件和树枝构件声明公共接口,并实现它们的默认行为。在透明式的组合模式中抽象 ......
模式 设计模式 优缺点 场景 golang

golang实现设计模式之责任链模式-优缺点,适用场景

`责任链模式`是一种行为型的设计模式,也叫职责链,定义:在这样的场景中,请求需要经过一系列的处理者,通过列表或者链表将处理者组合起来,请求依次被处理者处理,如果需要中断,也可以及时退出处理。上述的这种的应用场景,典型的就是在 `web` 应用中的 `中间件或者拦截器`,比如 `Gin框架` 的中间件 ......
模式 设计模式 优缺点 场景 责任

golang实现设计模式之适配器模式-优缺点,适用场景

`适配器模式`是一种结构型设计模式,它是通过接口转换,使得原先接口不被兼容的其他类可以一起工作。 **类型** * 类结构型 特点: \- 程序耦合性高 \- 要求程序员对组件内部结构熟悉 \- 应用相对少些 类适配器模式可以用过继承的方式来实现。 * 对象结构型 特点:可重用性较差。 对象适配器允 ......