golang
已收录文章:14026篇
-
Go通过%w包装错误并用errors.Unwrap解析,结合errors.Is和As判断链中错误类型,可高效追踪多层调用中的原始错误与上下文。284 收藏
-
模板方法模式通过定义算法骨架并允许子类重写特定步骤实现代码复用。在Golang中,使用接口和嵌入结构体可实现该模式:先定义包含Step1、Step2、Step3和Execute方法的Workflow接口;接着创建BaseWorkflow结构体实现默认步骤及执行顺序;子类如CustomWorkflow通过嵌入BaseWorkflow并重写Step2来自定义行为;测试时调用Execute将按序执行各步骤,体现定制逻辑。为避免过度抽象,应遵循YAGNI原则,从具体实现出发,逐步抽象,采用组合优于继承,遵守接口隔284 收藏
-
Go素数筛选分析 1. 素数筛选介绍 学习Go语言的过程中,遇到素数筛选的问题。这是一个经典的并发编程问题,是某大佬的代码,短短几行代码就实现了素数筛选。但是自己看完原理和代码后一脸283 收藏
-
引言 开篇明义,Go lang中从来就不存在所谓的“引用传递”,从来就只有一种变量传递方式,那就是值传递。因为引用传递的前提是存在“引用变量”,但是Go lang中从来就没有出现283 收藏
-
先来看这样一段代码,所存在的问题: var wg sync.WaitGroup var x int64 func main() { wg.Add(2) go f() go f() wg.Wait() fmt.Println(x) // 输出:12135 } func f() { for i:=0;i<10000;i++ { x = x+1 } wg.Done() } 这里为283 收藏
-
最近项目上碰到个小需求,输入是两个数组,一个旧数组一个新数组,要求获取新数组相对旧数组所有新增和删除的元素,例如: 输入: arr_old: {"1", "2", "4", "5", "7", "9"} arr_new: {"2", "3", "4", "6", "7283 收藏