
golang
十年砍柴---小火苗
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
异步的结果在哪里处理
异步的结果在哪里处理原创 2025-08-09 20:46:24 · 418 阅读 · 0 评论 -
golang中new和make的区别
Go语言中new和make都是内存分配函数,但用途不同。new(T)为任意类型T分配零值内存并返回指针*T,适用于所有类型。make(T,args...)仅用于切片、映射和通道,返回初始化后的类型实例而非指针,会执行额外初始化操作。关键区别在于:new返回指针且适用于所有类型,make返回初始化值且仅限特定类型。选择使用时,处理slice/map/channel用make,其他类型需要指针时用new。原创 2025-06-16 10:50:19 · 205 阅读 · 0 评论 -
Go语言通道如何实现通信
Go语言中的通道(channel)是用于goroutine间通信的内置数据结构,提供安全的数据传递方式。使用步骤包括:1)用make创建指定类型的通道;2)通过<-发送数据;3)用<-接收数据;4)不需要时用close关闭通道。示例展示了如何在两个goroutine间发送和接收数据:一个发送0-4的整数并关闭通道,另一个接收并打印数据。通道避免了数据竞争和死锁,是实现并发通信的有效机制。原创 2025-05-30 16:53:49 · 597 阅读 · 0 评论 -
go的select多路复用
摘要:本文演示了Go语言中select多路复用的使用场景。示例创建了两个缓冲通道(intChan和stringChan),分别写入整数和字符串数据。通过select语句,程序能同时监听多个通道的数据接收,当任一通道有数据时就立即处理。在没有数据可读时,default分支会执行退出操作。这种机制避免了关闭通道的需求,展示了Go语言并发编程中高效处理多通道通信的方法。原创 2025-05-30 16:43:10 · 286 阅读 · 0 评论 -
go的协程和channel结合
这是用Go语言实现的素数筛选程序。程序使用并发处理来提高效率,主要步骤包括:1) 将2-120000的数字放入通道;2) 启动16个协程并行判断素数;3) 通过WaitGroup同步协程;4) 最终统计执行时间。程序采用通道(intChan,primeChan,exitChan)进行协程间通信,并精确控制通道的关闭时机,确保所有素数被正确筛选和收集。执行完成后会输出总耗时,展示了Go在并发编程中的高效应用。原创 2025-05-30 16:00:16 · 124 阅读 · 0 评论 -
go的strconv函数库用法
本文介绍了在Go语言中将不同类型数据转换为字符串的两种方法:1)使用fmt.Sprintf函数,通过格式化参数转换整数(%d)、浮点数(%f)、布尔值(%t)和字节(%c);2)使用strconv包中的Format系列函数,包括FormatInt(整数转十进制字符串)、FormatFloat(浮点数格式化,可控制精度)和FormatBool(布尔值转字符串)。文章通过代码示例展示了各种转换方式的语法和使用注意事项,特别强调了FormatFloat的参数设置和格式化选项。原创 2025-05-30 00:51:05 · 142 阅读 · 0 评论 -
go实现定时任务
本文介绍了在Go中实现定时任务的五种方法:1)使用time.Timer和time.Ticker实现单次和周期性任务;2)用time.AfterFunc实现可取消的延迟任务;3)推荐使用robfig/cron库处理复杂调度;4)结合Goroutine和Channel实现灵活控制;5)在Web应用中集成后台任务。根据不同场景需求,文中对比了各方法的适用性,提供了详细代码示例,特别推荐使用robfig/cron库处理cron表达式的复杂调度任务。原创 2025-05-28 23:26:13 · 671 阅读 · 0 评论 -
go实现定时任务
go的定时任务原创 2025-05-28 23:24:00 · 1364 阅读 · 0 评论 -
Golang的Redis分布式锁
redis分布式锁原创 2025-05-28 22:54:43 · 205 阅读 · 0 评论 -
gin中把日志生成到按年月的日志文件中
本文展示了如何使用Go语言中的Gin框架配置日志输出。代码演示了如何将Gin的日志记录到按月命名的文件中,首先创建"logs"目录并生成格式为"YYYYMM.log"的日志文件。通过设置gin.DefaultWriter,可将日志输出重定向到指定文件。文中还提到可选项:同时输出到控制台。最后创建了默认的Gin路由引擎并启动服务。这段代码适合需要长期保存Web服务日志的场景。原创 2025-05-27 15:53:03 · 404 阅读 · 0 评论 -
go中len和sizeof区别
在Go语言中,len和sizeof(通过unsafe.Sizeof实现)功能不同。len用于获取数组、切片、字符串、映射和通道等数据类型的长度原创 2025-05-22 14:48:17 · 418 阅读 · 0 评论 -
go速度太慢卡顿,换国内源
在中国境内使用Go编程语言时,可以通过配置国内Go模块代理来加速包的下载。常见的代理源包括七牛云(https://goproxy.cn)、阿里云(https://mirrors.aliyun.com/goproxy/)和清华大学(https://goproxy.tuna.tsinghua.edu.cn)。切换代理源的方法有两种:一是通过终端命令go env -w GOPROXY=<代理地址>,direct进行配置,例如go env -w GOPROXY=https://goproxy.cn,direct;二原创 2025-05-17 16:35:23 · 864 阅读 · 0 评论 -
golang:%v,%+v,%#v的区别
【代码】golang:%v,%+v,%#v的区别。原创 2023-02-11 12:36:58 · 854 阅读 · 0 评论 -
常用大于等于小于的特殊标记LT、LE、EQ、NE、GE、GT
关系运算符 == (或 eq )、!= (或 ne )、 < (或 lt )、 > (或 gt )、 = (或 ge )算术运算符 + 、 - 、 * 、 / (或 div )和 % (或 mod )//大于等于运算符,如果运算符两边左边大于等于右边则返回真,否则返回假;//小于等于运算符,如果运算符两边左边小于等于右边则返回真,否则返回假;//大于运算符,如果运算符两边左边大于右边则返回真,否则返回假;//小于运算符,如果运算符两边左边大于右边则返回真,否则返回假;原创 2023-02-05 10:37:57 · 21069 阅读 · 0 评论 -
关于MAC zsh: command not found: bee 处理方案
(1)vim ~/.zshrc ------>添加上面路径 ------>wq 保存退出-------> source ~/.zshrc 即可。如果不行,还是出现 zsh: command not found: bee 这个提示,问题不大。如果还是不行,那么在zshrc配置文件中添加以下路径:操作和在bash_profile添加配置一样。最近在玩GO语言,接触到GoBee 这个框架,安装完成后检查。这3个是要记住的,如果咱们没有看到这3个,问题不大。---------以上都是前置条件-----原创 2023-02-02 16:39:01 · 689 阅读 · 0 评论 -
GOROOT 和 GOPATH 的区别
指的是项目的开发目录,存在三个目录结构,分别是src、pkg、bin目录bin #编译文件目录pkg #第三方包目录src #目源文件目录,开发项目存放在这个目录下图例:所以在开发的时候,我们要先设置好这两个值到环境变量,才能在执行开发编译命令的时候能够正常查找处理。原创 2023-02-02 14:49:04 · 384 阅读 · 0 评论 -
golang继承 匿名继承和有名继承
匿名继承时指定调用的结构体方法,这时候一定会调用People上的ShowA方法,如果People没有该方法会编译报错。Teacher没有ShowA的方法,虽然People有,但是此时People不是匿名继承 ,如果要要调用需要指定继承事指定的名称。golang是可以实现继承的,但是这种继承并不是严格意义上的继承,golang并不支持继承特性,因而也没有单继承,多继承,重写方法等复杂概念。t里没有这个对象,此时People在结构体的名称为P,而不是People,此时的People是P的类型。原创 2023-01-31 18:41:08 · 351 阅读 · 0 评论