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

Go 为什么要从公共函数调用私有函数,而不是在公共函数中实现代码?,go,Go,我在golang src中看到很多类似的代码: func Open(path string) (*Plugin, error) { return open(path) } func open() { // etc } 已从公用函数调用私有函数。为什么不只是: func Open(path string) (*Plugin, error) { // code of open here } 参考: 我确实理解,有时候这是有道理的,尤其是如果有更多的函数使用open。但事实并

我在golang src中看到很多类似的代码:

func Open(path string) (*Plugin, error) {
    return open(path)
}

func open() {
  // etc
}
已从公用函数调用私有函数。为什么不只是:

func Open(path string) (*Plugin, error) {
    // code of open here
}
参考:

我确实理解,有时候这是有道理的,尤其是如果有更多的函数使用open。但事实并非如此


这是一种Golang的组织方式吗?

在这种情况下,似乎是因为实际的实现依赖于操作系统

插件实现plugin_dlopen.go仅用于OSX和Linux,而替代的plugin_stubs.go则用于所有其他系统,它只包含伪函数,因为其他系统还没有实现

这允许您使用公共API和公共API文档将依赖操作系统的代码保存在一个文件中,同时将常规代码保存在一个地方