我正在尝试在本地构建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 关注
- 190 浏览
添加回答
举报
0/150
提交
取消