Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/go/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Go 如何导入您自己的软件包?_Go_Package - Fatal编程技术网

Go 如何导入您自己的软件包?

Go 如何导入您自己的软件包?,go,package,Go,Package,阅读并查看了有关该主题的一些StackOverflow问题后,我仍然无法构建包含多个文件的程序 我的GOPATH是:C:/go\u dev/,我的目录结构是: go_dev/ src/ github.com/ aurelienCastel/ crashTest/ main.go parser/

阅读并查看了有关该主题的一些StackOverflow问题后,我仍然无法构建包含多个文件的程序

我的GOPATH是:
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”);及
  • 标识符在包块中声明,或者是字段名或方法名
不会导出所有其他标识符

此外,使用混合大小写命名标识符,而不是使用snake大小写

package parser

// ...

func GetInfoFrom(filename string) Info {
    // ...
}

get\u info\u from
未导出;将其重命名为
GetInfoFrom
。您的意思是有一个命名约定来将函数设为private/public,比如snake\u case表示private,CamelCase表示public?我在说明书上没看到这个…看。大写的第一个字母使其导出。谢谢,如果你想发布一个答案,我会接受。虽然在规范中不是很突出,但围棋之旅很好地解释了这一点。