Golang本地导入

时间:2019-08-21 08:08:33

标签: go import

我正在尝试进行本地导入,但是失败。

我的环境是:

echo $GOPATH /home/peter/go echo $GOROOT /usr/local/go

入口点是:

/home/peter/go/src/projects/pkgs1/main.go

导入的文件为:

/home/peter/go/src/projects/pkgs2/stuff.go

main.go

package main

import (
    "fmt"
    "projects/pkgs2"  // <- this does not resolve
)

func main(){
    fmt.Println("123")
    pkgs2.X()
}

stuff.go

package pkgs2

import "fmt"

func X(){
    fmt.Println("X")
}

关于我做错了什么的指示?

1 个答案:

答案 0 :(得分:2)

您的导入路径是正确的,应该可以成功解析,但是按照编写的程序,由于未使用导入并且没有名为x的本地函数,因此程序无法编译。

如mkopriva所述,不会导出pkgs2中的x函数,并且在尝试在主软件包中使用它时还没有限定它的功能。

要导出功能,它必须以大写字母开头。

要在其他程序包中使用该功能,需要在程序包名称之前添加功能名称。

main.go

package main

import (
    "fmt"
    "projects/pkgs2"
)

func main(){
    fmt.Println("123")
    pkgs2.X()
}

stuff.go

package pkgs2

import "fmt"

func X(){
    fmt.Println("X")
}