go-jwt jwt go
go 笔记 init函数
来自:go init函数 1、golang里的main函数是程序的入口函数,olang还有另外一个特殊的函数init函数,先于main函数执行 init函数的主要作用: 初始化不能采用初始化表达式初始化的变量。 程序运行前的注册。 实现sync.Once功能。 其他 init函数的主要特点: ini ......
PaddleOCR之高性能Go语言实现OCR识别
最近为了让python语言能够直接调用PaddleOCR的C++的动态链接库,针对本人已经开源的PaddleOCR项目https://gitee.com/raoyutian/paddle-ocrsharp使用的PaddleOCR的C++动态库,进行了大量代码修改,修改后PaddleOCR,导出标准C ......
Go Xorm简单使用
官网相关文档 https://xorm.io/zh/docs/chapter-01/1.engine/ https://gitea.com/xorm/xorm/src/branch/master/README_CN.md xorm 是一个简单而强大的Go语言ORM库. 通过它可以使数据库操作非常简便 ......
【责任链设计模式详解】C/Java/JS/Go/Python/TS不同语言实现
简介 责任链模式(Chain of Responsibility Pattern)是一种行为型设计模式,也叫职责链模式、命令链模式。这种模式为请求创建了一个接收者对象的链,允许你将请求沿着处理者链进行发送,每个处理者均可对请求进行处理,或将其传递给链上的下个处理者。 当程序需要使用不同方式来处理多种 ......
golang pprof 监控系列(1) —— go trace 统计原理与使用
golang pprof 监控系列(1) —— go trace 统计原理与使用 服务监控系列文章 服务监控系列视频 关于go tool trace的使用,网上有相当多的资料,但拿我之前初学golang的经验来讲,很多资料都没有把go tool trace中的相关指标究竟是统计的哪些方法,统计了哪段 ......
go
1、深拷贝(Deep Copy) 拷贝的是数据本身,创造一个样的新对象,新创建的对象与原对象不共享内存,新创建的对象在内存中开辟一个新的内存地址,新对象值修改时不会影响原对象值。既然内存地址不同,释放内存地址时,可分别释放。 值类型的数据,默认全部都是深复制,Array、Int、String、Str ......
GO实现Redis:GO实现内存数据库(3)
实现Redis的database层(核心层:处理命令并返回) https://github.com/csgopher/go-redis datastruct/dict/dict.go type Consumer func(key string, val interface{}) bool type ......
json go
package mainimport ( "encoding/json" "fmt")type b struct { Params []interface{} `json:"params,omitempty"`}func main() { v := []interface{}(nil) v = ap ......
【入门】Go语言切片详解
一、Go语言切片介绍 1.1 什么是切片? 切片(slice)是对数组的一个连续片段的引用,所以切片是一个引用类型,这个片段可以是整个数组,也可以是由起始和终止索引标识的一些项的子集,需要注意的是,终止索引标识的项不包括在切片内。 1.2 数组和切片的区别是什么? 切片和数组密不可分,如果将数组理解 ......
【go】go多种uuid生产方式
package main import ( "fmt" "github.com/chilts/sid" "github.com/kjk/betterguid" "github.com/oklog/ulid" "github.com/rs/xid" "github.com/satori/go.uuid ......
【go】uuid简介
通用唯一识别码(英语:universally unique identifier,简称uuid)是一种软件建构的标准,亦为自由软件基金会组织在分散式计算环境领域的一部份。uuid的目的,是让分散式系统中的所有元素,都能有唯一的辨识信息,而不需要通过中央控制端来做辨识信息的指定。如此一来,每个人都可以 ......
【go】snowflake和snoyflake雪花算法学习与go实现
预备知识: Monotonic Clocks,即单调时间,所谓单调,就是只会不停的往前增长,不受校时操作的影响,这个时间是自进程启动以来的秒数 参考文章:https://www.simpleapples.com/2018/10/26/understand-time-struct-in-go/ 雪花算 ......
[Go]string、int、int64相互转换
import "strconv" //先导入strconv包 // string到int int, err := strconv.Atoi(string) // string到int64 int64, err := strconv.ParseInt(string, 10, 64) // int到st ......
开心档之Go 错误处理
Go 语言通过内置的错误接口提供了非常简单的错误处理机制。 error类型是一个接口类型,这是它的定义: type error interface { Error() string } 我们可以在编码中通过实现 error 接口类型来生成错误信息。 函数通常在最后的返回值中返回错误信息。使用erro ......
开心档之Go 语言数据类型
在 Go 编程语言中,数据类型用于声明函数和变量。 数据类型的出现是为了把数据分成所需内存大小不同的数据,编程的时候需要用大数据的时候才需要申请大内存,就可以充分利用内存。 Go 语言按类别有以下几种数据类型: 序号类型和描述 1 布尔型 布尔型的值只可以是常量 true 或者 false。一个简单 ......
开心档之Go 语言条件语句
条件语句需要开发者通过指定一个或多个条件,并通过测试条件是否为 true 来决定是否执行指定语句,并在条件为 false 的情况在执行另外的语句。 下图展示了程序语言中条件语句的结构: Go 语言提供了以下几种条件判断语句: 语句描述 if 语句 if 语句 由一个布尔表达式后紧跟一个或多个语句组成 ......
开心档之Go 语言环境安装
Go 语言支持以下系统: Linux FreeBSD Mac OS X(也称为 Darwin) Windows 安装包下载地址为:https://golang.org/dl/。 如果打不开可以使用这个地址:https://golang.google.cn/dl/。 各个系统对应的包名: 操作系统包名 ......
GO实现Redis:GO实现Redis协议解析器(2)
本文实现Redis的协议层,协议层负责解析指令,然后将指令交给核心database执行 echo database用来测试协议层的代码 https://github.com/csgopher/go-redis RESP协议 RESP是客户端与服务端通信的协议,格式有五种:正常回复:以“+”开头,以“ ......
使用go语言实现并发网络爬虫
go语言做爬虫也是很少尝试,首先我的思路是看一下爬虫的串行实现,然后通过两个并发实现:一个使用锁,另一个使用通道 这里不涉及从页面中提取URL的逻辑(请查看Go框架colly的内容)。网络抓取只是作为一个例子来考察Go的并发性。 我们想从我们的起始页中提取所有的URL,将这些URL保存到一个列表中, ......
GO实现Redis:GO实现TCP服务器(1)
本文实现一个Echo TCP Server interface/tcp/Handler.go type Handler interface { Handle(ctx context.Context, conn net.Conn) Close() error } Handler:业务逻辑的处理接口 H ......
Go语言并发编程(2):channel 通道介绍和使用
一、简介 channel 不仅可以用于 goroutine 间进行安全通信,还可以用于同步内存访问。 而且 Go 社区强烈推荐使用 channel 通道实现 goroutine 之间的通信, 不要通过共享内存来通信,而应该通过通信来共享内存。 Go 从语言层面保证了同一时间只有一个 goroutin ......
Go语言并发编程(4):sync包介绍和使用(下)-Once,Pool,Cond
sync包下:Once,Pool,Cond 一、sync.Once 执行一次 Once 简介 sync.Once 是 Go 提供的让函数只执行一次的一种实现。 如果 once.Do(f) 被调用多次,只有第一次调用会调用 f。 常用场景: 用于单例模式,比如初始化数据库配置 Once 提供的方法: ......
Go语言并发编程(3):sync包介绍和使用(上)-Mutex,RWMutex,WaitGroup,sync.Map
一、sync 包简介 在并发编程中,为了解决竞争条件问题,Go 语言提供了 sync 标准包,它提供了基本的同步原语,例如互斥锁、读写锁等。 sync 包使用建议: 除了 Once 和 WaitGroup 类型之外,大多数类型旨在供低级库程序使用。更高级别的同步最好用 channel 通道和通信来完 ......
go各框架的log日志
1.kratosLog: type Logger interface { Log(level Level, keyvals ...interface{}) error } type logger struct { logger Logger prefix []interface{} hasValue ......
JWT(JSON Web Token)
JWT(JSON Web Token)组成部分JWT由以下三部分组成: Header(头部)Payload(负载)Signature(签名) 即: Header.Payload.Signature HeaderHeader 部分是一个 JSON 对象,描述 JWT 的元数据,通常是下面的样子。 { ......
Go语言学习——gin的使用1
gin作为Go语言中非常受欢迎的一个web后端框架有着十分好的性能表现和易用性。下面记录一下学习使用gin完成一个最简单的服务器程序: package main //声明所属的包 import "github.com/gin-gonic/gin" //导入gin框架的包 func sayHello( ......
Go语言 是如何调用 chatGpt openai api 接口的 ?
Go语言 是如何调用 chatGpt openai api 接口的 ? 学习与分享 Go语言圈 2023-03-23 08:30 发表于广东 收录于合集#学Go语言哪些事儿161个 用编码工具,建议用最新版Goland,因为这里有正式版激活账号 https://web.52shizhan.cn/ac ......
Go语言:利用 TDD 逐步为一个字典应用创建完整的 CRUD API
前言 在数组这一章节中,我们学会了如何按顺序存储值。现在,我们再来看看如何通过键存储值,并快速查找它们。 Maps 允许你以类似于字典的方式存储值。你可以将键视为单词,将值视为定义。 所以,难道还有比构建我们自己的字典更好的学习 map 的方式吗? 正文 首先编写测试 在 dictionary_te ......
go 标准包flag的基本用法
相关用法见代码 flag.Type() # 通过 flag.Type() 返回对应类型的指针,姐应用后使用该值 package main import ( "flag" "fmt" "time" ) func main() { // 通过 flag.Type() 返回对应类型的指针,姐应用后使用该值 ......