-
问题内容
package main
import (
"fmt"
"reflect"
)
type A struct {
A0 string
A1 int
}
func (f A) test() {fmt.Println("test")}
func (f A) test1() {fmt.Println("test1")}
func main() {
var a A
var value reflect.Value = reflect.V
-
问题内容用户是一个微服务,文章是一个微服务;现在假如我用户微服务需要文章信息,有两种做法1.用户微服务垮库连文章表2.用户微服务调用文章微服务我想知道,一般采用哪种?如果用户
-
简介
前置知识
知道什么是缓存
听完本节公开课,你可以收获
掌握朴素LRU、LFU算法的思想以及源码掌握一种流式计数的算法 Count-Min Sketch手撕TinyLFU算法、分析Window-TinyLFU源码
一、LRU和LFU算法
LRU
-
前言
最近在项目中需要使用lua进行扩展,发现github上有一个用golang编写的lua虚拟机,名字叫做gopher-lua.使用后发现还不错,借此分享给大家,下面话不多说了,来一起看看详细的介绍吧。
数据类型
-
Go errors.Join 会忽略真正 nil,全部成功返回 nil。通过可选检查示例解释混合输入、错误成员识别及带类型空指针的返回陷阱,并给出聚合错误的适用约定。
-
runtime.KeepAlive 用于让持有原生句柄的 Go 对象在指定位置前保持可达,避免 finalizer 提前关闭资源。本文给出最小写法、放置位置、适用边界与常见误区。
-
用 Go os/signal 和 NotifyContext 组织优雅停止:让取消信号传到后台 goroutine,等待资源收尾,并正确释放通知注册,避免服务退出后的 goroutine 泄漏。
-
Go 的 File.Sync 只针对已经打开的文件描述符提交数据和文件元数据,临时文件 Rename 后的目录项仍属于父目录。本文拆分三层持久化边界,并给出 Go 的安全替换写法与平台注意事项。
-
Go maps.Equal 比较包含 NaN 的映射时返回 false,是因为它按 == 比较值,而 NaN 不等于自身。本文解释值与键的边界,并给出 maps.EqualFunc 的业务比较写法。
-
Go 解析 X.509 证书时,未知扩展应从 Certificate.Extensions 读取原始 OID、Critical 和 Value;重新生成证书则使用 ExtraExtensions,并单独处理未知关键扩展。
-
Go 切片 append 后另一个切片内容跟着变化,通常是因为容量足够时仍共享底层数组。本文用 len、cap 和最小示例区分共享与扩容分支,并给出 copy 与 slices.Clone 的隔离写法。
-
Go 的 http.Client 返回响应后,Response.Body 不读取、不关闭,或每次新建 Client,都可能让 Transport 无法复用持久连接。本文用原创示例拆开 Body 生命周期、读取策略和连接池排查方法。
-
Go 用 archive/zip 生成的 ZIP 无法打开时,先检查条目写入、zip.Writer.Close 和底层输出的关闭顺序,再用 zip.Reader 区分截断、写入失败与 CRC 校验问题。
-
Go HTTP 客户端用 multipart.Writer 同时上传文件和表单字段时,应使用 WriteField 与 CreateFormFile 写入同一个 body,最后 Close 并复用 FormDataContentType 设置请求头。本文给出完整写法、资源关闭顺序和常见排查点。
-
time.Time.AppendText 从 Go 1.24 起提供面向 encoding.TextAppender 的 RFC 3339 文本输出。它适合把时间追加到已有字节缓冲区,但要处理错误返回,并注意它保存的是时区偏移而不是 Location 名称。