我在 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 的文檔保存在一個地方。
- 1 回答
- 0 關注
- 117 瀏覽
添加回答
舉報
0/150
提交
取消