为了账号安全,请及时绑定邮箱和手机立即绑定

为什么要从公共函数调用私有函数,而不是在公共函数中调用私有函数?

为什么要从公共函数调用私有函数,而不是在公共函数中调用私有函数?

Go
喵喔喔 2023-04-17 14:50:50
我在 golang src 中看到很多这样的代码:func Open(path string) (*Plugin, error) {    return open(path)}func open() {  // etc}从公共调用私有函数。为什么不只是:func Open(path string) (*Plugin, error) {    // code of open here}参考: https: //golang.org/src/plugin/plugin.go? s=1065:1104#L21我确实理解有时它是有道理的,特别是如果有更多的功能使用open. 但事实并非如此。这是某种 Golang 的组织方式吗?
查看完整描述

1 回答

?
30秒到达战场

TA贡献1828条经验 获得超6个赞

在这种情况下,这似乎是因为实际实现取决于操作系统。

插件实现plugin_dlopen.go仅用于 OSX 和 Linux,替代方案plugin_stubs.go用于其他一切(它只包含虚拟函数,因为还没有用于其他系统的实现。)

这允许您使用构建标签将依赖操作系统的代码保存在一个文件中,同时将通用代码、公共 API 和公共 API 的文档保存在一个地方。


查看完整回答
反对 回复 2023-04-17
  • 1 回答
  • 0 关注
  • 76 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信