Go 如何导入您自己的软件包?
阅读并查看了有关该主题的一些StackOverflow问题后,我仍然无法构建包含多个文件的程序 我的GOPATH是:Go 如何导入您自己的软件包?,go,package,Go,Package,阅读并查看了有关该主题的一些StackOverflow问题后,我仍然无法构建包含多个文件的程序 我的GOPATH是:C:/go\u dev/,我的目录结构是: go_dev/ src/ github.com/ aurelienCastel/ crashTest/ main.go parser/
C:/go\u dev/
,我的目录结构是:
go_dev/
src/
github.com/
aurelienCastel/
crashTest/
main.go
parser/
parser.go
main.go:
package main
import "github.com/aurelienCastel/crashTest/parser"
func main() {
info := parser.get_info_from("file.go")
// ...
}
package parser
// ...
func get_info_from(file_name string) Info {
// ...
}
解析器/解析器。转到:
package main
import "github.com/aurelienCastel/crashTest/parser"
func main() {
info := parser.get_info_from("file.go")
// ...
}
package parser
// ...
func get_info_from(file_name string) Info {
// ...
}
当我在crashTest
目录中运行go install
时,我得到以下错误:
未定义:parser.get_info_from
我知道这是一个反复出现的问题,但有人能告诉我我做错了什么吗?为了从外部包访问标识符,其名称必须以大写字母开头: 导出的标识符 可以导出标识符以允许从另一个包访问它。如果出现以下两种情况,则导出标识符:
- 标识符名称的第一个字符是Unicode大写字母(Unicode类“Lu”);及
- 标识符在包块中声明,或者是字段名或方法名
package parser
// ...
func GetInfoFrom(filename string) Info {
// ...
}
get\u info\u from
未导出;将其重命名为GetInfoFrom
。您的意思是有一个命名约定来将函数设为private/public,比如snake\u case表示private,CamelCase表示public?我在说明书上没看到这个…看。大写的第一个字母使其导出。谢谢,如果你想发布一个答案,我会接受。虽然在规范中不是很突出,但围棋之旅很好地解释了这一点。