onconfigchange golang viper

golang之异步队列Asynq

Asynq[1]是一个Go实现的分布式任务队列和异步处理库,基于redis,类似Ruby的sidekiq[2]和Python的celery[3]。Go生态类似的还有machinery[4]和goworker 同时提供一个WebUI asynqmon[5],可以源码形式安装或使用Docker imag ......
队列 golang Asynq

golang 反斜杠替换

难点 主要是 golang 和 Java 类似双引号定义字符串 python php 单双引号通吃 只是上代码 package main import ( "fmt" "strings" ) func main() { str := "+++\\+++" replacedStr := strings ......
斜杠 golang

IT技术栈:Golang面试攻略详细总结,有的坑,原来真的可以躲过去

IT技术栈:Golang面试攻略详细总结,有的坑,原来真的可以躲过去 首发2023-10-10 17:38·大侠技术栈 make与new的异同 相同点: 都是用来给变量分配内存的 不同点: new一般给值类型的变量,例如:string、int、arr分配内存,make给slice、channel、m ......
攻略 Golang 技术

golang之gRPC

相关链接: grpc: https://grpc.io/docs/languages/go/quickstart/ protobuf: https://protobuf.dev/programming-guides/proto3/ protobuf语法: 示例: syntax = "proto3"; ......
golang gRPC

Golang chan 的实现原理

Golang chan 的实现原理 Go语言中的chan(通道)是一种用于在不同的goroutines之间进行通信和同步的重要机制。chan的实现原理涉及到Go语言的运行时系统和底层的数据结构。以下是chan的主要实现原理: 底层数据结构:chan的底层数据结构是一个用于存储数据的环形队列(circ ......
原理 Golang chan

golang map/sync.map 实现

map Go 中的 map 是一种高效的散列表(hash table)实现,它的底层实现细节包括以下重要方面: 哈希表(Hash Table):map 的底层数据结构是一个哈希表。哈希表是一个数组,每个元素都是一个哈希桶,用于存储键值对。 哈希函数(Hash Function):Go 使用哈希函数将 ......
map golang sync

解决 golang 中 grep console 插件不生效问题

日志多了以后不好找,idea 中的神奇 grep console 在 goland 竟然不好使了,一番查找下,找到了一个解决方案 cmd+shift+a 找到 Registry 找到go.run.processes.with.pty,改为 false 大功告成 原贴:https://github.c ......
插件 console golang 问题 grep

Golang 使用SQLX实现可选条件查询

package main import ( "fmt" "log" _ "github.com/go-sql-driver/mysql" "github.com/jmoiron/sqlx" ) type CityQuery struct { query string opts cityQueryOp ......
条件 Golang SQLX

golang 使用gomail.v2发送电子邮件

1 package email 2 3 import ( 4 "errors" 5 "gopkg.in/gomail.v2" 6 ) 7 8 var dialer *gomail.Dialer 9 10 func Reset(host string, port int, username, pass ......
电子邮件 邮件 golang gomail 电子

Golang HOT100 做题记录

LeetCode 热题100 1. 两数之和 题目大意:给出一个数字的数 []num,一个目标值 target。在数组中,找出两数之和为目标值的下标,任意输出一个答案。 例子:num[] = {0, 2,3, 4, 2}, target = 4, 输出:[]int{0,3} 注意点:1. 不能重复, ......
Golang 100 HOT

GoLang sync.Mutex和sync.RWMutex

Mutex可以看做是锁,RWMutex则是读写锁 使用锁时优先使用RWMutex RWMutex:核心就是四个方法,RLock、RUnlock、Lock、UnlockMutex:Lock 和 Unlock double-check就是加读锁先检查一遍,释放读锁,加写锁,再检查一遍 锁的实现一般是依赖 ......
sync RWMutex GoLang Mutex

GoLang context包

初始化一个context如果确定是开头则用Background,如果不确定则用ToDo context包核心API有四个1.context.WithValue 设置键值对,并且返回一个新的context实例 2.context.WithCancel 3.context.WithDeadline 4. ......
context GoLang

golang实现一个简单的文件浏览下载功能代码示例

想省事用Claude(一个 依托chatgpt 的 AI)生成一段 golang 的文件浏览下载示例,结果给生成的代码大概是这样的(省去了无关部分,主要部分如下): http.HandleFunc("/*", downloadFile) http.HandleFunc("/", showFileLi ......
示例 代码 功能 文件 golang

Strimzi Kafka Bridge(桥接)实战之三:自制sdk(golang版本)

欢迎访问我的GitHub 这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos 本篇概览 本文是《Strimzi Kafka Bridge(桥接)实战》的第三篇,前文咱们掌握了Strimzi Kafka Bridge的基本功能:基于h ......
实战 Strimzi 版本 Bridge golang

基于goravel的CMS,企业官网通用golang后台管理系统

2023年9月11日10:47:00 仓库地址: https://gitee.com/open-php/zx-goravel-website CMS,企业官网通用PHP后台管理系统 框架介绍 Goravel SCUI 后端开发组件 go 1.20 Goravel 1.13 数据库 sql(使用最新日 ......
后台 管理系统 goravel golang 系统

golang 代码实现一个工具函数:用于合并两个go map

内容来自对 chatgpt 的咨询 初始化一个新 map,然后遍历两个旧 map,把每个元素都存到新 map 即可。 package main import "fmt" // MergeMaps 创建一个新的 map 用于保存合并后的值。返回新的 map。 func MergeMaps(destMa ......
函数 两个 代码 工具 golang

golang 代码实现:并发请求下游接口,下游接口限制请求参数中某数组单次最多传20个

内容来自对 chatgpt 的咨询 假设你有一个golang 的数组,数组元素数量大于20,你需要调用下游接口,但是接口的请求参数限制了一次最多传20个,为了节省时间,你需要并发调用,完整整个数组的下游调用,请完成代码编写 写法一 我们将数组切分成最大20个元素的小块,并对每个块并发调用下游接口: ......
接口 数组 参数 代码 golang

golang 代码实现如果在在一个秒级时间戳上加上23h59m59s

代码来自chatgpt 实现如果在在一个秒级时间戳上加上23h59m59s 先把时间戳转换成 time 对象,然后利用 Add 函数在该对象上添加23h59m59s,最后获取时间对象的时间戳 package main import ( "fmt" "time" ) func main() { // ......
23h59m59s 代码 时间 golang 59

golang grom 实现 INSERT...ON DUPLICATE KEY UPDATE

内容来自对 chatgpt 的咨询 前言(INSERT...ON DUPLICATE KEY UPDATE 介绍) 当你在MySQL中插入数据,如果唯一键发生冲突,可以使用 INSERT...ON DUPLICATE KEY UPDATE 语句实现插入和更新操作。其基本语法如下: INSERT IN ......
DUPLICATE golang INSERT UPDATE grom

golang 使用 gorm 查询数据 demo

内容来自对 chatgpt 的咨询 题目 假设你有一张学生数据库表,需要通过golang 的gorm查询某个id的学生实体 查询 demo 在这段代码中,"student"变量是一个Student类型的结构体,用于存储查询结果。我们通过调用gorm.DB的Where方法和 First 方法,将第一个 ......
数据 golang demo gorm

golang 求出这两个对象数组的2个差集,即存在其中一个数组,但是不存在于另一个数组

代码来自 chatgpt package main import ( "fmt" "reflect" ) type Object struct { ID int } func main() { a := []Object{{1}, {2}, {3}} b := []Object{{2}, {3}, ......
数组 差集 对象 两个 golang

Go每日一库之135:Ent(Facebook 开源 Golang 实体框架)

> 对于**后端开发者**来说,一款好用的框架能够大大提升应用的开发效率。为了降低开发者使用 TiDB 的门槛,**方便开发者快速连接到 TiDB**,我们也在和合作伙伴一起,逐步完善**面向主流开发语言和框架的连接支持**。 ![每日一库之135:Ent(Facebook%20开源%20Golan ......
实体 框架 Facebook Golang 135

Go每日一库之133:lo(基于泛型的 Golang lodash 库)

近日,Go 核心开发团队终于宣布了 Go 1.18 正式版本的发布!这是一个大家期待很久的版本!Go 1.18 包含大量新功能:模糊测试、性能改进、工作区等,以及 Go 语言开源以来最大的一次语法特性变更 —— 支持泛型! 支持泛型后,我们便不再需要写如下冗余的代码: ![每日一库之133:lo(基 ......
Golang lodash 133

golang-select

select的作用 golang 中的 select 就是用来监听和 channel 有关的 IO 操作,当 IO 操作发生时,触发相应的动作。select 只能应用于 channel 的操作,既可以用于 channel 的数据接收,也可以用于 channel 的数据发送。如果 select 的多个 ......
golang-select golang select

golang之命令行工具Cobra

github地址: https://github.com/spf13/cobra [安装] go get -u github.com/spf13/cobra@latest 使用cobra_cli工具 go install github.com/spf13/cobra-cli@latest [使用] ......
命令 工具 golang Cobra

golang-channel

什么是 channel 管道 channel 是 goroutine 与 goroutine 之间通信的重要桥梁 channel 是一个通道,用于端到端的数据传输,这有点像我们平常使用的消息队列,只不过 channel 的发送方和接受方是 goroutine 对象,属于内存级别的通信。 这里涉及到了 ......
golang-channel channel golang

在windows10上安装多个golang

在windows10上安装多个golang # 原理 下载不同go版本,然后重命名go可执行文件,然后配置环境变量,不同命令使用不同的版本。 其实所有的开发环境都可以这么使用。比如python2,python3 # 方法 问的[文心一言](https://yiyan.baidu.com/),哈哈哈哈 ......
多个 windows golang 10

golang-waitgroup

说明 golang通过waitgroup来实现并发控制,用法跟java的CountDownLatch 效果一样 WaitGroup 的使用场景和方法 我们通过goroutine运行一个或者一组任务,需要关心这组任务执行完了进行通知 WaitGroup 如同它的字面意思,就是等待一组 goroutin ......
golang-waitgroup waitgroup golang

一个思路:实现 golang 中的 `__file__` `__line__` 宏

作者:张富春(ahfuzhang),转载时请注明作者和引用链接,谢谢! cnblogs博客 zhihu Github 公众号:一本正经的瞎扯 测试 zaplog 发现,开启 caller 的调用,会使整个服务增加 2% 的损耗。 其实文件及其行号完全可以在编译期加上去,没必要带来运行期的性能损耗。 ......
思路 golang file line

golang 反射

参考 https://www.cnblogs.com/jiujuan/p/17142703.html float反射示例 package main import ( "fmt" "reflect" ) func main() { var x float64 = 1.2345 fmt.Println( ......
golang