首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >goimports检测不到本地包

goimports检测不到本地包
EN

Stack Overflow用户
提问于 2018-07-30 04:38:40
回答 1查看 1.7K关注 0票数 0

我有几个包放在单独的文件夹中,用于我的golang项目,这个项目正在变得有点大。我一直在尝试创建单独的包,但没有被goimport检测到

代码语言:javascript
复制
GOPATH="/home/malek/go:/home/malek/Desktop/Workspace"
GORACE=""
GOROOT="/usr/local/go"

我的目录就是这样,

代码语言:javascript
复制
Workspace -> src -> application -> utility -> math.go

在我的math.go文件夹中,我有一个软件包实用工具

但是,当我尝试执行import "application/utility"或尝试在我的main.go文件(在应用程序文件夹中)中包含来自math.go文件的公共函数时,我得到了未定义...

我做错了什么?

EN

回答 1

Stack Overflow用户

发布于 2018-07-30 08:08:42

您还没有为我们提供重现您的问题的具体步骤。我不觉得有什么问题。goimports -w main.go起作用了。例如,

goimports -w main.go之前的application/main.go

代码语言:javascript
复制
package main

import (
    "fmt"
)

func main() {
    fmt.Println(utility.PiE())
}

application/utility/math.go

代码语言:javascript
复制
package utility

import "math"

func PiE() float64 { return math.Pi * math.E }

命令:

代码语言:javascript
复制
#
cd $HOME
cd $HOME/Desktop/Workspace
rm -f src/application/application
cp src/application/main.bak src/application/main.go
tree
cd $HOME/Desktop/Workspace/src/
cat application/utility/math.go
cd application
export GOPATH=$HOME/gopath:$HOME/Desktop/Workspace
go env GOPATH
cat main.go
go build -a
goimports -w main.go
cat main.go
go build -a && ./application
#

输出:

代码语言:javascript
复制
~$ #
~$ cd $HOME
~$ cd $HOME/Desktop/Workspace
~/Desktop/Workspace$ rm -f src/application/application
~/Desktop/Workspace$ cp src/application/main.bak src/application/main.go
~/Desktop/Workspace$ tree
.
└── src
    └── application
        ├── main.bak
        ├── main.go
        └── utility
            └── math.go

3 directories, 3 files
~/Desktop/Workspace$ cd $HOME/Desktop/Workspace/src/
~/Desktop/Workspace/src$ cat application/utility/math.go
package utility

import "math"

func PiE() float64 { return math.Pi * math.E }
~/Desktop/Workspace/src$ cd application
~/Desktop/Workspace/src/application$ export GOPATH=$HOME/gopath:$HOME/Desktop/Workspace
~/Desktop/Workspace/src/application$ go env GOPATH
/home/peter/gopath:/home/peter/Desktop/Workspace
~/Desktop/Workspace/src/application$ cat main.go
package main

import (
    "fmt"
)

func main() {
    fmt.Println(utility.PiE())
}
~/Desktop/Workspace/src/application$ go build -a
# application
./main.go:8:14: undefined: utility
~/Desktop/Workspace/src/application$ goimports -w main.go
~/Desktop/Workspace/src/application$ cat main.go
package main

import (
    "application/utility"
    "fmt"
)

func main() {
    fmt.Println(utility.PiE())
}
~/Desktop/Workspace/src/application$ go build -a && ./application
8.539734222673568
~/Desktop/Workspace/src/application$ #

goimports -w main.go之后的application/main.go

代码语言:javascript
复制
package main

import (
    "application/utility"
    "fmt"
)

func main() {
    fmt.Println(utility.PiE())
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51584370

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档