免责声明:是的,我知道这不是“应该做的”和“使用接口组合和委托”和“语言的作者更清楚”。然而,我面临着从标准库中复制粘贴并创建我自己的包,或者按照我的要求做的选择。所以请不要回复“你想做的是错误的,你是一个糟糕的开发者,你应该感到难过”。
所以,在 Go 中我们有http
stdlib 包。这个包有许多处理 HTTP Range 标头和响应的函数(解析器,“偏移量+大小”的结构等等)。出于各种原因,我想使用一些非常相似ServeContent
但工作方式有点不同的东西(长话短说 - 做体操所需的管道数量ReaderAt
对于我想要完成的事情来说不是最佳的)所以我想Range
自己解析 HTTP 标头,使用 stdlib 包中的实用函数/结构http
,然后手动处理它们。ServeContent
基本上,我想要:-)的更改版本
有没有办法让我“重新打开” http
stdlib 包以使用它的未导出标识符?ABI 对我来说不是问题,因为源是我的,程序每次都是从头开始编译等等,它不需要与旧版/其他 Go 版本的二进制兼容性。即我能够确保构建将在特定的 Go 版本上完成,并且有测试来检查未导出的标识符是否消失。所以...
如果有一个foo
在 Go 标准库中调用的包,但它只公开了一个MagicMegamethod
我不需要的东西,并且使用了usefulFunc
我usefulStruct
想要访问的东西,我有没有办法访问这些标识符?通过重新打开包,或使用其他方式......不涉及从 stdlib 复制粘贴数十行而不进行测试等。
HUH函数
相关分类