reflect 与 reflectlite

go 语言标准库已经有了 reflect 包, 为什么标准库源代码里不直接使用 reflect 包而又写了一个 internal/reflectlite 包呢?

我是在看 context 源码发现的:github.com/golang/go/blob/master/s...

internal/reflectlite: github.com/golang/go/tree/master/s...
求指教

讨论数量: 3

好像是为了解决循环依赖,不太确定

3年前 评论

Package reflectlite implements lightweight version of reflect, not using any package except for "runtime" and "unsafe".。轻量意味着更加高效,下面两个链接可以对比看下 golang.org/pkg/internal/reflectlit... golang.org/pkg/reflect/#Type

3年前 评论

@nanjingfm 为什么会高效呢,看代码只是从 reflect 包拷了一部分到 reflectlite,没有看出来哪里高效了

3年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!