我正在嘗試在本地構建godoc.org源代碼以進行一些更改。我的工作目錄是/Users/Dany/go/src/github.com/golang/gddo. 在 gddo-server 包中有幾個文件。其中一個 go 文件使用另一個文件中的函數,該文件在同一個包中但未導出。它正在拋出Undefined: <function-name>異常。文件夾的結構是,golang/gddo/ gddo-server main.go crawl.go我們如何在不同文件中使用來自同一包的未導出函數?任何人都可以幫我解決這個問題。另外,如果有人對如何構建 godoc.org 代碼有任何想法嗎?
1 回答

侃侃無極
TA貢獻2051條經驗 獲得超10個贊
同一個包的源文件可以毫不費力地引用任何源文件中定義的標識符。如果它們位于同一文件夾中并且具有相同的包聲明,則您可以引用所有包級導出和未導出的標識符,就好像所有標識符都已在一個文件中定義一樣。
見規格:包:
包又由一個或多個源文件構造而成,這些源文件共同聲明了屬于包的常量、類型、變量和函數,并且可以在同一包的所有文件中訪問這些常量、類型、變量和函數。
和規范:包條款:
一組共享相同 PackageName 的文件構成了一個包的實現。一個實現可能要求一個包的所有源文件都位于同一目錄中。
需要注意的一件事:您的示例似乎是特殊main
包。如果要使用 運行它go run
,則必須枚舉所有源文件。
要使用 運行您的示例go run
,請導航到該gddo-server
文件夾并鍵入:
go run background.go browse.go client.go crawl.go graph.go main.go play.go template.go
或者,如果您首先構建它,則更簡單。導航到gddo-server
文件夾并鍵入:
go build
這將在同一文件夾中生成本機可執行二進制文件。要運行它,請鍵入:(gddo-server
在 Windows 上)或./gddo-server
(在 Linux 上)。
或者您可以安裝它go install
,它將結果可執行二進制文件放在您的$GOPATH/bin
文件夾中。
- 1 回答
- 0 關注
- 235 瀏覽
添加回答
舉報
0/150
提交
取消