![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
golang
lj907722644
这个作者很懒,什么都没留下…
展开
-
Golang通过栈实现表达式运算(中缀表达式转后缀表达式解析语法)
需求背景:将string表达式数组 [title==AUSU && ( header==Wecome || brand!=AC68U )] 解析并使用ES查询得到运算结果。分析:带有括号的表达式,需要根据优先级解析,可将中缀表达式转换为后缀表达式,去除括号原创 2023-08-07 17:25:54 · 627 阅读 · 0 评论 -
Elasticsearch 聚合性能优化 -- Multi Search (附Golang 实现逻辑)
ES检索性能优化之Multi Search原创 2023-06-05 17:55:10 · 768 阅读 · 0 评论 -
golang 整合antlr语法校验
golang整合antlr语法校验解析。适用于表达式解析的场景,表达式类似于ip="192.168.1.3" && (port="80" || protocol="http")原创 2023-02-27 11:48:31 · 819 阅读 · 1 评论 -
Golang连接Hadoop递归下载指定目录下的所有文件
Golang连接Hadoop递归下载指定目录下的所有文件原创 2023-02-09 11:21:28 · 395 阅读 · 0 评论 -
golang gin 监听rabbitmq队列无限消费
连接rabbitmq。main方法协程调用。原创 2022-11-24 13:39:06 · 1594 阅读 · 2 评论 -
GoWeb从无到有(读取配置文件、gin、gorm)
GoWeb从初始框架搭建,包含读取配置、整合gin和gorm(v2版本)原创 2022-11-18 14:24:49 · 496 阅读 · 0 评论 -
golang 使用ffmpeg获取rtsp流截图,并生成缩略图
golang直接使用命令调用ffmpeg 获取rtsp码流截图。使用imaging包将截图生成缩略图。原创 2022-10-20 15:13:56 · 2932 阅读 · 0 评论 -
golang解析xml文件
通过etree解析xml文件思路:通过SelectElement()找到数据根节点和子节点通过SelectAttrValue()获取属性值实现:解析出示例中的 IP、type、协议、端口、时间原创 2022-09-21 10:31:19 · 1292 阅读 · 0 评论 -
gin 重复读取post请求的body数据
post请求中,body数据读完就没有了,如果要多次读取,需要对body重新赋值// ioutil.ReadAll读取到的是[]byte,读完body就没有了body, err := ioutil.ReadAll(c.Request.Body)// 使用ioutil.NopCloser重新赋值给bodyc.Request.Body = ioutil.NopCloser(bytes.NewReader(body))...原创 2022-05-19 13:41:42 · 1293 阅读 · 0 评论 -
golang通过websocket实现ssh、telnet、正向shell(bind shell)终端交互
1. gin框架注册路由func init() { routerCheckRole = append(routerCheckRole, registerTgWsRouter)}// 需认证的路由代码func registerTgWsRouter(v1 *gin.RouterGroup, authMiddleware *jwt.GinJWTMiddleware) { api := apis.TgWs{} r := v1.Group("") { // 协议、IP、端口 r.GET("/原创 2022-05-06 11:40:19 · 3219 阅读 · 1 评论 -
golang 生成登录验证码
1. 第三方组件github.com/mojocn/base64Captcha在新版本中取消了 ConfigCharacter 这个配置方法,需要使用 DriverString2. 代码import ( "image/color" "github.com/mojocn/base64Captcha")// 设置自带的storevar store = base64Captcha.DefaultMemStore//生成验证码func CaptMake() (id, b64s strin原创 2022-03-29 15:36:02 · 1469 阅读 · 0 评论 -
Sqlite3 Openwrt及windows安装
1. Openwrt安装sqlite3安装opkg updateopkg install libsqlite3 sqlite3-cli验证2. windows安装sqlite3下载安装包https://www.sqlite.org/download.html把 sqlite-dll-win32-x86-3380100.zip 中解压出来的两个文件(sqlite3.def 和 sqlite3.dll)和sqlite-tools-win32-x86-3280000.z原创 2022-03-21 15:37:35 · 1360 阅读 · 0 评论 -
4-golang协程(goroutine)和管道(channel)
4-golang协程(goroutine)和管道(channel)1. 并发和并行多线程程序在单核上运行,就是并发多线程程序在多核上运行,就是并行2. go协程和线程Go主线程(也可以称为线程,可以理解为进程):一个Go线程上可以起多个协程,协程是轻量级的线程Go协程的特点有独立的栈空间共享程序堆空间调度由用户控制协程是轻量级的线程func test() { for i := 0; i < 10; i++ { fmt.Println("test() hello w原创 2022-03-15 10:16:45 · 589 阅读 · 0 评论 -
3-golang中File相关操作
3-golang中File相关操作1. 带缓冲的Reader读取Filepackage mainimport ( "bufio" "fmt" "io" "os")func main() { file, err := os.Open("d:/test.txt") if err != nil { fmt.Println("打开文件失败") } defer file.Close() // 创建一个 *Reader,带缓冲的 reader := bufio.NewReade原创 2022-03-15 10:15:51 · 629 阅读 · 0 评论 -
2-golang基础-流程控制及数据类型
2-golang基础1. 流程控制1. 顺序控制2. 分支控制if-elsefunc main() { // golang支持在if中直接定义一个变量 if age := 20; age > 18 { fmt.Println("aa") }}switchfunc main() { var age int = 18 switch age { // case 中可以使用多个表达式(常量、变量、有结果的函数),用逗号隔开 // case 结束不需要break原创 2022-03-15 10:15:07 · 477 阅读 · 0 评论 -
1-golang基础-golang环境安装及基本数据类型
1-golang基础(基本数据类型、指针、运算符)1. sdk下载:https://golang.google.cn/dl/2. windows下安装sdk下载windows sdk,并安装配置环境变量,go1.17.6.windows-amd64.msi安装后会默认配置GOROOT,只需要重新配置GOPATH,用于指向工作目录(项目存放目录)验证是否安装成功go version3. golang执行流分析两种执行流:XX.go文件通过执行go build XX.go原创 2022-03-15 10:12:49 · 496 阅读 · 0 评论