如何导入自己的包?

时间:2016-12-11 17:31:42

标签: go package

阅读https://golang.org/doc/code.html后,看一下有关该主题的一些StackOverflow问题,我仍然无法构建包含多个文件的程序

我的GOPATH是:C:/go_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")
     // ...
}

解析器/ parser.go:

package parser

// ...

func get_info_from(file_name string) Info {
    // ...
}

当我在go install目录中运行crashTest时,出现以下错误:

  

undefined:parser.get_info_from

我知道这是一个反复出现的问题,但有人可以告诉我我做错了吗?

1 个答案:

答案 0 :(得分:4)

为了能够从外部包访问标识符,其名称必须以大写字母开头。 From the spec

  

导出的标识符

     

可以导出标识符以允许从另一个包访问它。如果两者都导出标识符:

     
      
  • 标识符名称的第一个字符是Unicode大写字母(Unicode类“Lu”);和
  •   
  • 标识符在包块中声明,或者是字段名称或方法名称。
  •   
     

不会导出所有其他标识符。

此外,it is Go convention使用混合大小写来命名标识符,而不是使用蛇案例。

package parser

// ...

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