一道golang
保护数据隐私:深入探索Golang中的SM4加密解密算法
确保网络请求数据传输的安全性、一致性和防篡改是至关重要的。通过结合对称加密和非对称加密的强大能力,我们可以实现高度安全的数据传输。对称加密提供了快速且高效的加密和解密过程,而非对称加密则保证了密钥的安全性。这种结合能够确保数据在传输过程中的保密性、完整性和可靠性,有效防止数据被篡改或窃取。无论是保护... ......
组合排列的一道推导题
虽然做对了,但是也是没有逻辑的推断,以概率的形式选择了C ![image.png](https://image.baidu.com/search/down?url=https://tvax1.sinaimg.cn/large/a88e0064ly1hfa9pq8rzqj20v30bh0wp.jpg) ......
golang context使用小结
Go标准库中的context包,提供了goroutine之间的传递信息的机制,信号同步,除此之外还有超时(timeout)和取消(cancel)机制。概括起来,Context可以控制子goroutine的运行,超时控制的方法调用,可以取消的方法调用。 #### context核心数据结构 1. Co ......
golang入门,基础语法demo(1)
package main import "fmt" func main() { // 声明变量 var a int // 使用 var 关键字声明变量 a,类型为 int a = 1 // 赋值 fmt.Println(a) // 类型推导 // 使用 := 自动推导类型并声明变量 b,其类型为 s ......
golang 常用控制协程的三种方式
#### waitGroup waitGroup这种方式适用于一个任务可以被拆分成几个子任务,并且子任务之间的关联程度不高,全部的子任务都完成,才会进行下一阶段的任务。 ```golang package main import ( "fmt" "sync" "time" ) func main() ......
GoLang在不同系统打包
配置 Mac下编译Linux, Windows平台的64位可执行程序: go env -w CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go env -w CGO_ENABLED=0 GOOS=windows GOARCH=amd64 Linux下编译Mac, Win ......
golang 给对象的基础数据类型的指针类型的属性赋值
## 概要 有时我们可能碰到定义成下面这样的结构体,结构体里某些属性是基础数据类型,更确切的说,是基础数据类型的指针类型。 ```golang type Student struct { name string `json:"name"` age *int `json:"age"` // age 是 ......
Golang 中文转拼音
翻遍整个 GitHub , Golang 中文转拼音类库, 怎么就这么难找呢? 于是我造了一个轮子: 中文转拼音类库. 目前来说应该是最好用的了. GitHub 传送门: [https://github.com/Lofanmi/pinyin-golang](https://github.com/Lo ......
Golang如何优雅地关闭 channel
Golang如何优雅地关闭 channel 萧瑟 golang面试经典讲解 2023-05-31 21:00 发表于上海 一、介绍 想必听说过 go 的,应该都知道 go 的最大的特性 goroutine 并发编程,而说到并发编程,使用 channel 进行数据传输是 go 中的必修课。 go 的并 ......
Golang 中文转拼音
翻遍整个 GitHub , Golang 中文转拼音类库, 怎么就这么难找呢? 于是我造了一个轮子: 中文转拼音类库. 目前来说应该是最好用的了. GitHub 传送门: [https://github.com/Lofanmi/pinyin-golang](https://github.com/Lo ......
A Practical Methodology, HSM, Handler,Service,Model, for Golang Backend Development
A simple methodology or design pattern called HSM (Handler, Service, Model) or Golang backend development. HSM is similar to MVC but specifically tail... ......
如何调试golang程序
在Golang中进行调试和性能分析是非常重要的,在开发过程中发现问题并及时修复可以极大地提高代码质量和效率。介绍两种常用的调试工具,dlv和pprof,以及如何使用它们进行代码调试和性能分析。 ### 一、dlv调试工具 1.安装 在使用dlv前需要先安装,可以通过以下命令进行安装: ```shel ......
golang 语法糖
### golang 语法糖 在 Go 语言中,`nums...` 是一种语法糖,用于将切片 `nums` 展开为一个个独立的参数。 在函数调用中,如果你有一个切片 `nums`,你可以使用 `nums...` 将切片展开为独立的元素,作为函数的参数传递。 以下是一个示例说明 `nums...` 的 ......
镜像golang 标准库文档
- **缘起:**查golang文档时,访问 https://pkg.go.dev/std 网站有点慢,就想做个离线版的 - 修改日期: 2023-06-16 # mirror std lib `wget -c -t 3 -r -l 1 -np -p -k https://pkg.go.dev/st ......
一道有趣的平均计算排序题
如图: ![image.png](https://img03.mifile.cn/v1/MI_542ED8B1722DC/0fcfeba63946bca5dcacb79de2a26da9.png) 如题: ![image.png](https://img08.mifile.cn/v1/MI_542E ......
golang面试题
1.什么是goroutine?它和线程有什么区别?答:goroutine是Go语言中一种轻量级的线程,由Go语言的运行时系统调度。和线程不同的是,一个程序可以创建成千上万的goroutine,因为goroutine是在一个线程中运行的,所以创建goroutine的代价非常小。此外,goroutine ......
golang之JWT实现
什么是JSON Web Token? JSON Web Token(JWT)是一个开放标准(RFC 7519),它定义了一种紧凑且自包含的方式,用于在各方之间以JSON方式安全地传输信息。由于此信息是经过数字签名的,因此可以被验证和信任。可以使用秘密(使用HMAC算法)或使用RSA或ECDSA的公钥 ......
golang之数据验证validator
https://blog.csdn.net/guyan0319/article/details/105918559/ 前言在web应用中经常会遇到数据验证问题,普通的验证方法比较繁琐,这里介绍一个使用比较多的包validator。 原理将验证规则写在struct对字段tag里,再通过反射(refle ......
golang之context
context 用来解决 goroutine 之间退出通知、元数据传递的功能。 context 使用起来非常方便。源码里对外提供了一个创建根节点 context 的函数: func Background() Context background 是一个空的 context, 它不能被取消,没有值,也 ......
【JS基础】关于事件循环的一道题目
const myObject = { foo: 'hello', func: function () { const self = this console.log(1, this.foo) console.log(2, self.foo) function a() { console.log(3, ......
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 ......
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开发新手常犯的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 Copy 制整个文件夹或单个文件; //Move 文件
// Copy 制整个文件夹或单个文件 func Copy(from, to string) error { f, e := os.Stat(from) if e != nil { fmt.Println("没有找到要拷贝的路径:", from) return e } ......
golang对于[]byte数组转string进行比较的优化
当需要比较两个`[]byte`数组是否相等时有好几种方案,下面可以看出前三种方案都是优化过的,效率高的方案。 ```go package main import ( "bytes" "crypto/rand" mr "math/rand" "testing" ) func StringEqual(n ......
【解决一个小问题】golang 的 `-race`选项导致 unsafe代码 panic
**作者:张富春(ahfuzhang),转载时请注明作者和引用链接,谢谢!** * [cnblogs博客](https://www.cnblogs.com/ahfuzhang/) * [zhihu](https://www.zhihu.com/people/ahfuzhang/posts) * [G ......
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 Println、Printf、Sprintf的区别(笔记)
Println :可以打印出字符串,和变量 Printf : 只可以打印出格式化的字符串,可以输出字符串类型的变量,不可以输出整形变量和整形 Sprintf:用传入的格式化规则符将传入的变量格式化,(终端中不会有显示),返回为 格式化后的字符串 ......
每天一道面试题:Spring的Bean生命周期
Spring的Bean生命周期包括以下步骤: 1、实例化(Instantiation):当Spring容器接收到创建Bean的请求时,它会先实例化Bean对象。这个过程可以通过构造函数、工厂方法或者反序列化等方式完成; 2、属性赋值(Populate Properties):在实例化Bean对象后, ......
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 ......