golang
已收录文章:240篇
-
必须先查本地缓存(L1)再查Redis(L2),否则L1失效、网络压力激增;典型路径为l1.Load→命中返回,未命中则redis.Get→命中后反序列化并l1.Store;L1TTL须≤L2TTL以避免脏数据。151 收藏
-
Go实现SSE推送核心是设对响应头、每次写完立刻flush、禁用超时;漏任一环节,EventSource即卡在connecting状态。199 收藏
-
Go语言通过结构体和接口实现工厂模式,解决对象创建的复杂性。1.定义支付接口Payment和多种支付方式(Alipay、WeChatPay、BankCardPay)并实现Pay方法;2.创建工厂函数CreatePayment,根据传入参数返回对应支付实例;3.主函数中调用工厂函数生成对象并执行支付操作,输出“使用支付宝支付99.90元”;4.进阶使用抽象工厂模式,定义国家工厂接口CountryFactory,支持不同地区(如中国、美国)创建支付方式与货币组合;5.通过GetCountryFactory获取389 收藏
-
ast.Inspect遍历需先判空再访问Params/Results,init函数名特殊,返回false可提前退出,节点只读不可修改;它比手写递归更全、更稳、不栈溢出。429 收藏
-
Go语言通过goroutine和channel实现高并发HTTP请求,定义FetchResult结构体统一返回结果,主函数中遍历URL列表并发调用fetchURL函数,每个goroutine将结果发送到缓冲channel,主线程收集所有响应并打印状态,实现非阻塞高效并发。366 收藏
-
time.LoadLocation返回nil的主因是传入非法时区名(如"CST"、"GMT+8"或拼写错误),仅支持IANA标准名(如"Asia/Shanghai");系统缺tzdata或Go未嵌入时区数据(如Alpine镜像)也会导致失败。261 收藏