golang
文章平均质量分 56
大杯无糖
普通在校大学生,目前主要学习Golang,享受用编程解决实际问题,对经济学感兴趣。
展开
-
校园招新之获取进QQ群但未报名人员
校园的社团、实验室招新一般由是校领导会发一个QQ通知,让各个班的同学们进一个招新群。群里面会有负责人提示大家报名,但是群成员不总是都会报名,我们需要的就是,找到那些,已经进群,但是没有报名的同学,然后私聊提醒一下。原创 2024-05-26 10:23:30 · 525 阅读 · 1 评论 -
钉钉事件订阅&前缀树算法&gin框架解析
当钉钉监测到发生一些事件,如下图此处举例三个事件user_add_org、user_change_org、user_leave_org,传统的做法是,我们写三个if条件,类似下图这样字符串匹配效率比较低,于是联想到gin框架中的路由匹配算法,可以借鉴模仿gin框架的实现方式。用实际需求驱动开发,掌握知识的同时还能应用知识,理解得会更加深入。原创 2024-04-03 10:57:25 · 629 阅读 · 0 评论 -
var make new 的区别与联系
该值是空,a是一个指针类型的变量,指针类型里面要存的是地址,地址的默认值是nil地址是空,我们还是用*对改地址取值,那一定会出错。下方代码这个时候a是0,同时也已经为a分配了一个内存地址var 一个变量的时候,引用类型和值类型的第一个区别就是,引用类型是nil,值类型是对应类型的零值,该零值已经默认分配了内存。看下方代码如果var 一个切片当你声明一个切片变量并将其初始化为时,它的零值是nil,表示切片不引用任何底层数组。当你打印一个nil切片时,输出的结果是[],这是 Go 语言的约定。原创 2023-07-09 15:34:51 · 167 阅读 · 0 评论 -
Go把Map转成对象
问题是result是一个 map[string]string 类型,我们直接把map[string][string]给序列化成json字符串,是不符合我们预想的,因为map的值是string类型(为什么map的值不存int类型?当一个对象被存储在Redis的Hash里面的时候,如果原本是int类型,那存储到Hash的时候,是没有字符串的两个"",如果是string类型,是会有"" ,但是其实两个value本质都是string,我们正是通过这个关键点,把map给反序列化到结构体上了,并成功对应其各种类型。原创 2023-08-12 08:43:04 · 619 阅读 · 0 评论 -
Golang通过alibabaCanal订阅MySQLbinlog
最近在做redis和MySQL的缓存一致性,一个方式是订阅MySQL的BinLog文件,我们使用阿里巴巴的Canal的中间件来做。Canal是服务端和客户端两部分构成,我们需要先启动Canal的服务端,然后在Go程序里面连接Canal服务端,即可监听到MySQL的数据变化。原创 2023-08-11 08:59:29 · 1107 阅读 · 0 评论 -
Golang中的channel
共享内存可以进行数据交换,但是在不同的协程里面容易发生竞态问题,为了保证数据交换的正确性,很多数据交换的正确性,很多并发模型中必须使用互斥量对内存需要加锁,这样会造成性能下降。通道panic的三种情况 :关闭已经关闭的通道、对关闭过的通道再发送值、关闭一个值为nil的通道。无缓冲通道只有在接收方能够能够接收值的时候才能发送,否则一直处于等待发送的阶段。无缓冲通道只有在发送方能够能够发送值的时候才能接收,否则一直处于等待接收的阶段。通道有两个操作,接收和发送,发送是发送值到通道,接收是从通道里面接收值。原创 2023-07-09 17:01:46 · 463 阅读 · 0 评论 -
单点登录sso
发现本地没有token,使用csa来登录,登录成功之后,cas签发一个token,该token写在自己csa域名下面,然后同时作为参数给应用A一份,应用A拿到这个token之后,再来cas验证一下这个token,token有效,cas则会返回用户信息,然后系统A拿到用户信息。拿到用户信息之后,再把该信息调用自己登陆接口。然后使用自己系统的token。第二个系统,也直接去cas域名,可以直接拿到token,拿到token以后,调用cas系统进行验证,可以拿到自己的信息,然后自己调用登陆接口即可。原创 2023-07-21 08:16:10 · 202 阅读 · 0 评论 -
深、浅拷贝与值传递和引用传递
值传递是将实参的值传给形参,形参是实参的一份拷贝,形参和实参的内存地址是不同的。引用传递传递的是指针,在Go中没有引用传递,如果传递的是指针的话,其实是把这个指针变量拷贝一份,新拷贝的这个指针变量和原来的指针指向的是同一块内存。深拷贝拷贝的是数据本身,创建一个新的对象,新创建的对象与原对象不共享内存,修改新对象值的时候,不会影响到原对象的值。浅拷贝拷贝的是数据数据地址,只复制指向对象的指针,新老对象的指针指向的内存地址是一样的,修改新的会影响旧的。实现方式有copy函数和append函数。原创 2023-07-09 19:59:05 · 387 阅读 · 2 评论 -
Golang内存分配及垃圾回收
黑色对象的内存槽有两种位置,栈和堆,栈的特点是空间容量比较小,要求相应的速度快,因为函数调用弹出频繁,所以“插入屏障”机制在栈空间的操作对象中不使用,而仅仅在堆空间对象的操作中。删除屏障,具体操作:被删除的对象,如果自身为灰色或者白色,那么被标记为灰色。触发条件:当一个白色对象被黑色对象引用(白色对象挂在黑色对象下面) 且 灰色对象与它之间可达关系的白色对象遭到了破坏。插入屏障:在A对象引用B对象的时候,B对象被标记为灰色(讲B挂在A下游,B必须被标记为灰色),满足强三色不变式。为什么需要垃圾回收?原创 2023-07-08 08:38:38 · 529 阅读 · 0 评论 -
Golang指针&Go变量类型
Go语言中的值类型(int float bool string array struct)都有对应的指针类型(*int,*int64,*string)等等。最近在学习底层知识,一直在说,值类型,引用类型,指针类型,指针,指针变量,搞的迷迷糊糊的,感觉也是似懂非懂,现在系统的学习归纳整理一下。b就是一个指针(类型)变量,该变量的值是地址,对该地址进行取值(*)操作,可以获取指针变量指向的原变量的值。a是一个值类型的变量,因为a里面存储的是10,我们通过a可以直接取到 10 这个值。然后我们执行下面的代码。原创 2023-07-09 09:11:04 · 437 阅读 · 0 评论 -
Go切片底层原理
slice在函数参数传递过程中是值传递还是引用类型传递?原创 2023-07-01 16:44:39 · 267 阅读 · 0 评论 -
chromedp如何在CentOs7上使用
chrome官方为我们提供了Centos环境下的chrome,可以达到和windows环境下的chrome同等效果,windows的话,直接下载软件安装即可,Linux系统的话,需要使用docker启动chrome headless服务。原创 2023-03-16 11:23:16 · 3585 阅读 · 0 评论 -
钉钉企业内部机器人开发——同步组织架构人员信息到数据库
钉钉企业内部机器人开发——同步组织架构人员信息到数据库原创 2023-03-09 22:06:22 · 2570 阅读 · 2 评论 -
Gorm根据关系模型中的属性查询原模型数据
Gorm根据关系模型中的属性查询原模型数据原创 2023-03-08 15:26:31 · 529 阅读 · 0 评论 -
Goquery实战爬取csdn&简书&博客
【代码】Goquery实战爬取csdn&简书&博客原创 2023-02-17 08:26:06 · 188 阅读 · 0 评论 -
解决apifox无法导入Go结构体
解决apifox无法导入Go结构体原创 2023-01-17 11:41:00 · 477 阅读 · 0 评论 -
Golang中for range 和for i 的区别
Golang中for range 和for i 的区别原创 2023-01-17 09:23:10 · 255 阅读 · 2 评论 -
Golang匿名结构体&结构体嵌套(实战使用)
Golang匿名结构体&结构体嵌套(实战使用)原创 2023-01-14 11:51:26 · 1572 阅读 · 1 评论 -
Golang单元测试第一章——网络测试
Golang单元测试第一章——网络测试原创 2023-01-05 15:05:51 · 739 阅读 · 1 评论 -
Golang爬取“你划我猜”词语
Golang爬取“你划我猜”词语原创 2023-01-03 10:41:44 · 132 阅读 · 0 评论 -
Grom解决AutoMigrate建表时Error 1406: Data too long for column ‘url‘ at row 54
Grom解决AutoMigrate建表时Error 1406: Data too long for column 'url' at row 54原创 2022-12-15 15:26:04 · 530 阅读 · 0 评论 -
Golang实现HashSet和HashMap
Golang实现HashSet和HashMap原创 2022-12-13 10:36:15 · 249 阅读 · 0 评论 -
Gorm如何一键删除关系
Gorm一键删除关系原创 2022-12-06 17:14:36 · 1430 阅读 · 0 评论 -
Golang中的strings.Builder
Golang中的strings.Builder的使用原创 2022-12-06 09:01:07 · 537 阅读 · 0 评论 -
Gorm中HasMany
GormHasMany关系原创 2022-11-10 21:17:28 · 474 阅读 · 0 评论 -
Gorm关联模式
Gorm关联模式原创 2022-11-10 20:30:58 · 698 阅读 · 0 评论 -
服务器部署Golang项目
服务器部署Golang项目原创 2022-11-06 14:23:11 · 1401 阅读 · 0 评论 -
Golang操作Execl表格实战(统计企业请假次数)
Golang操作Execl表格实战(统计企业请假次数)原创 2022-11-04 14:33:53 · 399 阅读 · 0 评论 -
Golang操作阿里云视频点播服务上传音视频
Golang操作阿里云视频点播服务上传音视频原创 2022-11-01 22:44:44 · 1162 阅读 · 0 评论 -
Golang操作阿里云OSS上传文件
Golang操作阿里云OSS上传文件原创 2022-10-31 21:02:23 · 3548 阅读 · 0 评论 -
钉钉机器人outgoing开发——钉钉接口字段篇
在整个开发过程中,我们需要频繁的调用钉钉接口,其中用到了很多字段,例如AppKey,AppSecret ,access_token,openConversationId,chatId,RobotCode,coolAppCode,userId等等。下面我们就来一一讲解这些字段的作用以及获取。原创 2022-10-10 10:57:46 · 1594 阅读 · 0 评论 -
Docker部署golang项目
部署思路:dockerfile文件构造docker镜像,docker镜像构造容器,容器和阿里云服务器挂载,容器内部安装git,拉去Coding代码,然后采取端口映射方式部署。原创 2022-10-03 21:55:39 · 2432 阅读 · 0 评论 -
chromedp+goquery爬取打字邀请码实战
最近一直在研究钉钉机器人用于推送消息,突然想到小组同学经常会键盘打字竞赛,竞赛所用的邀请码一直是手动获取,不够自动化,较为繁琐,想着给钉钉机器人添加一个定时推送打字邀请码的功能,方便大家打字,提高效率。原创 2022-09-29 16:05:09 · 1818 阅读 · 0 评论 -
Gin显示项目本地图片给前端
Gin显示项目本地图片给前端,就是后端的一张图片,需要传递给前端,前端拿到后展示给用户原创 2022-09-27 11:22:15 · 1947 阅读 · 0 评论 -
Gorm中的重写外键和重写引用
gorm中重写外键和重写引用原创 2022-09-19 21:13:16 · 1846 阅读 · 3 评论 -
钉钉机器人V1使用说明
机器人使用说明原创 2022-09-11 08:36:18 · 2216 阅读 · 1 评论 -
Golang发送Get和Post请求
Golang发送Get请求和Post请求原创 2022-09-08 16:06:43 · 4522 阅读 · 0 评论 -
Golang通道的基本操作
Golang通道的基本操作原创 2022-09-06 10:52:36 · 488 阅读 · 0 评论 -
cron包导读翻译
cron包导读翻译原创 2022-08-15 18:05:38 · 210 阅读 · 0 评论 -
Golang发送GET网络请求并绑定参数到结构体(gin框架)
Golang发送GET网络请求并绑定参数到结构体(gin框架)原创 2022-08-08 12:57:23 · 4037 阅读 · 1 评论