go colly 爬虫实现示例

正文贡献某CC,go源码爬虫一个,基于colly,效果是根据输入的浏览器cookie及excel必要行列号,从excel中读取公司名称,查询公司法人及电话号码。并写回到excel中指定行。package main...

Go语言学习之context包的用法详解

目录前言需求一需求二Context 接口emptyCtxvalueCtx类型定义WithValuecancelCtx类型定义cancelCtxWithCanceltimerCtx类型定义WithDeadlineWithTimeout总结前言日常 Go 开发...

Go 微服务开发框架DMicro设计思路详解

目录背景概述架构设计理念面向接口设计会话 Session消息 Message协议 Proto编码 Codec连接 Socket有机的组合插件 Plugin组件未来展望背景DMicro 诞生的背景,是因为我写了 10...

一文带你搞懂Golang结构体内存布局

目录前言结构体内存布局结构体大小内存对齐总结前言结构体在Go语言中是一个很重要的部分,在项目中会经常用到,大家在写Go时有没有注意过,一个struct所占的空间不一定等于各个字...

golang进程内存控制避免docker内oom

目录背景测试程序一、为gc预留空间方案二、调整gc参数背景golang版本:1.16之前遇到的问题,docker启动时禁用了oom-kill(kill后服务受损太大),导致golang内存使用接近docker上限后...

golang中的nil接收器详解

我们先看一个简单的例子,我们自定义一个错误,用来把多个错误放在一起输出:type CustomError struct {
errors []string
}func (c *CustomError) Add(err string) {
c.errors =...

Go语言k8s kubernetes使用leader election实现选举

目录一、背景二、官网代码示例三、锁的实现一、背景在kubernetes的世界中,很多组件仅仅需要一个实例在运行,比如controller-manager或第三方的controller,但是为了高可用性,需要...

GScript 编写标准库示例详解

目录版本更新引言使用 Docker编写 GScript 标准库版本更新最近 GScript 更新了 v0.0.11 版本,重点更新了:Docker 运行环境新增了 byte 原始类型新增了一些字符串标准库 String...

2023-01-01

Golang分布式锁详细介绍

目录进程内加锁trylock基于redis的setnx基于zk基于etcdredlock如何选择在单机程序并发或并行修改全局变量时,需要对修改行为加锁以创造临界区。为什么需要加锁呢?可以看看下段...

浅析Golang切片截取功能与C++的vector区别

目录1. 引言2.分析过程2.1 s[:]的方式截取元素2.2 append的方式截取元素3. 结论浅析golang切片截取(删除)功能1. 引言golang的切片被认为是和C++的vector容器类似,都可以认为是...

GoLang strings.Builder底层实现方法详解

目录1.strings.Builder结构体1.1strings.Builder结构体1.2Write方法1.3WriteByte方法1.4WriteRune方法1.5.WriteString方法1.6String方法1.7Len方法1.8Cap方法1.9Reset方法1...

Go实现快速生成固定长度的随机字符串

目录前言Improvements1. Genesis (Runes)2. Bytes3. Remainder4. Masking5. Masking Improved6. Source7. Utilizing strings.Builder8. "Mimicing" strings.Builder with p...

Go素数筛选分析详解

目录Go素数筛选分析1. 素数筛选介绍2. 代码分析3. 代码验证4. 总结Go素数筛选分析1. 素数筛选介绍学习Go语言的过程中,遇到素数筛选的问题。这是一个经典的并发编程问题,是某...

基于GORM实现CreateOrUpdate方法详解

目录正文GORM 写接口原理CreateSaveUpdate & UpdatesFirstOrInitFirstOrCreate方案一:FirstOrCreate + Assign方案二:Upsert总结正文CreateOrUpdate 是业务开发中很常见的场景...

详解Golang中字符串的使用

目录1、字符串编码2、字符串遍历3、字符串中的字符数4、字符串trim5、字符串连接6、字节切片转字符串1、字符串编码在go中rune是一个unicode编码点。我们都知道UTF-8将字符...

Golang底层原理解析String使用实例

目录引言String底层stringStruct结构引言本人因为种种原因(说来听听),放弃大学学的java,走上了golang这条路,本着干一行爱一行的情怀,做开发嘛,不能只会使用这门语言,所以打算开一个...

Windows系统中搭建Go语言开发环境图文详解

目录1、Go语言简介2、安装Git3、Go 工具链(编译器)安装3.1、环境变量GOROOT3.2、环境变量GOPATH3.3、Go常用命令4、包管理4.1、go module4.2、gopm5、编写Go语言代码的IDE或编辑...

Golang Compare And Swap算法详细介绍

目录CAS算法(compare and swap)CAS是如何运行的Go中的CAS源码CAS的缺陷CAS算法(compare and swap)CAS算法涉及到三个操作数需要读写的内存值V进行比较的值A拟写入的新值B当且仅...

GoLang channel使用介绍

目录停止信号任务定时解耦生产方和消费方控制并发数停止信号channel 用于停止信号的场景还是挺多的,经常是关闭某个 channel 或者向 channel 发送一个元素,使得接收 channel...

Golang 官方依赖注入工具wire示例详解

目录依赖注入是什么开源选型wireprovidersinjectors类型区分总结依赖注入是什么Dependency Injection is the idea that your components (usually structs in go) should r...

GoLang channel底层代码实现详解

目录1.channel 简介2.channel 内部结构3.创建channel4.发送数据5.接收数据6.关闭channel7.总结1.channel 简介Go语言有个很出名的话是“以通信的手段来共享内存”...

GoLang切片相关问题梳理讲解

目录1.数组和切片有什么区别2.拷贝大切片一定比拷贝小切片代价大吗3.切片的深浅拷贝4.零切片 空切片 nil切片是什么4.1零切片4.2nil切片4.3空切片5.切片的扩容策略1.17之前1...

详解Golang ProtoBuf的基本语法总结

目录前言基本规范基本语法package定义包import 导入包定义Message定义Service前言最近项目是采用微服务架构开发的,各服务之间通过gPRC调用,基于ProtoBuf序列化协议进行数据通...

详解Go语言如何实现字符串切片反转函数

目录Python 中的 reverse 函数实现一个 reverse 反转函数利用两个切片实现前后两两原地交换反转为原切片的副本总结Python 中的 reverse 函数Go 语言不像其他语言如 Python,...

解决GO编译时避免引入外部动态库的问题

目录简介gopacket是如何构建的?演示demo准备静态库指定编译参数简介最近碰到一个问题,有一个流量采集的组件中使用到了github.com/google/gopacket 这个库,这个库使用一切正常,...

详解如何在Go语言中循环数据结构

目录如何在Go中循环字符串如何在Go中循环map结构如何在Go中循环Struct数组是存储类似类型数据的强大数据结构。您可以通过索引识别和访问其中的元素。在Golang中,您可以通过...

golang中的defer函数理解

目录golang的defer什么是defer理解deferdefer什么时间执行(defer、 return、返回值 三者的执行顺序)defer输出的值,就是定义时的值。而不是defer真正执行时的变量值(注意引用情...

Go-RESTful实现下载功能思路详解

目录Go-RESTful实现下载功能下载实现思路文件系统IO:网络IO:服务建立配置路由总结Go-RESTful实现下载功能下载实现思路下图为实现一个文件下载所需要考虑的因素:文件系统IO:●...

GoLang unsafe包详细讲解

目录1.前言2.指针类型转换3.指针运算4.获取大小和偏移5.关于string1.前言开发中,[]byte类型和string类型需要互相转换的场景并不少见,直接的想法是像下面这样进行强制类型转换...

GoLang切片并发安全解决方案详解

目录1.介绍切片并发问题2.实践检验真理3.回答切片并发安全问题4.解决切片并发安全问题方式5.附1.介绍切片并发问题关于切片的,Go语言中的切片原生支持并发吗?2.实践检验真理实...

golang 实现时间滑动窗口的示例代码

目录一 概念二 go-zero中的滑动窗口实现1.Bucket 样本窗口2. window 滑动窗口3. RollingWindow窗口三 使用一 概念固定窗口就像是滑动窗口的一个特例,固定窗口是大小固定且不...

通过源码分析Golang cron的实现原理

目录前言Demo示例源码实现结构体 Cron 和 EntryNew()实现AddFunc()实现Start()实现Run()实现Stop()实现Remove()实现小结前言golang实现定时任务很简单,只须要简单几步代码即...

go mod文件内容版本号简单用法详解

go版本本文go版本是1.14,开启 GO111MODULE="on"经常在go.mod里面看到引入第三方库的版本号:module testgo 1.14require github.com/jinzhu/copier v0.3.5 // indirect可以看到...

golang进程在docker中OOM后hang住问题解析

目录正文结论:正文golang版本:1.16背景:golang进程在docker中运行,因为使用内存较多,经常在内存未达到docker上限时,就被oom-kill,为了避免程序频繁被杀,在docker启动时禁用了oom-ki...

深入了解Golang interface{}的底层原理实现

目录前言interface数据结构ifaceeface总结前言在 Go 语言没有泛型之前,接口可以作为一种替代实现,也就是万物皆为的 interface。那到底 interface 是怎么设计的底层结构呢?下面...

Golang迭代如何在Go中循环数据结构使用详解

目录引言如何在Go中循环字符串如何在Go中循环map结构如何在Go中循环Struct结论引言数组是存储类似类型数据的强大数据结构。您可以通过索引识别和访问其中的元素。在Golang...

GoLang channel关闭状态相关操作详解

关于 channel 的使用,有几点不方便的地方:1.在不改变 channel 自身状态的情况下,无法获知一个 channel 是否关闭。2.关闭一个 closed channel 会导致 panic。所以,如果关闭 chan...

Golang Defer基础操作详解

目录defer的执行顺序defer与return谁先谁后函数的返回值初始化有名函数返回值遇见defer情况defer遇见panicdefer中包含panicdefer下的函数参数包含子函数defer面试真题defer...

golang 开启opencv图形化编程

目录正文环境配置API编程常用APIOpenVideoCaptureVideoCaptureDeviceVideoCaptureFileNewWindowSetWindowTitleNewMatNewMatWithSizeNewMatFromScalarNewCascadeClassifierL...

浅析Golang中的内存逃逸

目录什么是内存逃逸分析为什么需要逃逸分析如果变量放错了位置会怎样内存逃逸场景return 局部变量的指针interface{} 动态类型栈空间不足闭包性能最后什么是内存逃逸分析内...

详解Go语言设计模式之单例模式

目录单例模式的概念单例模式结构单例模式的使用场景单例模式例子:特殊的计数器第一个单元测试单例模式实现单例模式优缺点单例模式的概念单例模式很容易记住。就像名称一样,它...

Golang中的错误处理的示例详解

目录1、panic2、包装错误3、错误类型判断4、错误值判断1、panic当我们执行panic的时候会结束下面的流程:package mainimport "fmt"func main() { fmt.Println("hello") panic...

Go语言入门之函数的定义与使用

目录1.前言2.函数声明2.1 函数例子2.2 Go 函数支持多返回值2.3 变量函数2.4 闭包2.5 递归3.总结1.前言函数是一段代码的片段,包含连续的执行语句,它可以将零个或多个输入参数...

Golang 实现Redis 协议解析器的解决方案

本文是 《用 Golang 实现一个 Redis》系列文章第二篇,本文将分别介绍Redis 通信协议 以及 协议解析器 的实现,若您对协议有所了解可以直接阅读协议解析器部分。Redis 通信协议...

go语言K8S 的 informer机制浅析

目录正文使用方法创建Informer工厂创建对象Informer结构体注册事件方法启动Informer机制解析ReflectorControllerProcesser & ListenerIndexer总结正文Kubernetes的控制器模...

Go sync WaitGroup使用深入理解

目录基本介绍使用源码分析AddDoneWait注意事项基本介绍WaitGroup是go用来做任务编排的一个并发原语,它要解决的就是并发 - 等待的问题:当有一个 goroutine A 在检查点(checkpoi...

基于Go语言实现类似tree命令的小程序

目录需求目的需求分析需求写一个简版类似于unix tree命令的go语言小程序,如下参数仿照于tree命令的文档该小程序支持的功能如下:mtree命令默认打印以层级结构打印所有目录和文...

深入理解Golang make和new的区别及实现原理

目录前言new的使用底层实现make的使用底层实现总结前言在Go语言中,有两个比较雷同的内置函数,分别是new和make方法,二者都可以用来分配内存,那他们有什么区别呢?对于初学者可能会...

go高并发时append方法偶现错误解决分析

目录背景排查问题解决问题背景在实现图片转码的需求时,需要支持最大 500 个图片下载后转换格式;如果是一个一个下载后转码,耗时太长,需要使用 goroutine 实现 500 个图片并发下...

Golang如何快速构建一个CLI小工具详解

目录如何Golang快速构建一个CLI小工具先上效果那么如何实现呢?如何Golang快速构建一个CLI小工具在现实开发的过程中,大家会发现很多开源的框架都会有着自己的一个CLI工具库来...

返回顶部
顶部