Go 为什么要从公共函数调用私有函数,而不是在公共函数中实现代码?
我在golang src中看到很多类似的代码: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。但事实并
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文档将依赖操作系统的代码保存在一个文件中,同时将常规代码保存在一个地方