golang“undefined”函数在另一个文件中声明?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了golang“undefined”函数在另一个文件中声明?相关的知识,希望对你有一定的参考价值。
我正在尝试编写一个基本的go程序,它调用不同文件上的函数,但是同一个软件包的一部分。但是,它返回:
undefined: NewEmployee
这是源代码:
main.go
:
package main
func main() {
emp := NewEmployee()
}
employee.go
:
package main
type Employee struct {
name string
age int
}
func NewEmployee() *Employee {
p := &Employee{}
return p
}
func PrintEmployee (p *Employee) {
return "Hello world!"
}
不要在你的/src
中使用GOPATH
。套餐位于$GOPATH/src
。
对于build
或install
,您需要将文件放在包目录中。
对于go run
,您需要提供所有文件作为参数:
go run main.go employee.go
但是,你应该几乎总是使用go install
或go build
(最好是前者,因为go build
在使用非主要包时会引起混淆)
我在GoLand中遇到了同样的问题并找到了解决方案。你需要将Run kind
从File
改为Package
或Directory
。如果您进入Run/Edit
配置,您可以从下拉列表中选择此选项。
对于包~/go/src/a_package
,Package path
是a_package
而Directory
是~/go/src/a_package
。你可以选择你喜欢的Run kind
。
如果你正在使用go run
,请做go run *.go
。它将自动查找当前工作目录中的所有go文件,编译然后运行main函数。
您可以尝试以下之一。
方法01:假设您的项目名称是MyProject
- 转到你的路径,键入
go build
并按Enter键。 - 它将创建一个可执行文件作为您的项目名称(“MyProject”)
- 然后在你的终端类型
./MyProject
并点击回车
您可以通过键入go build && ./MyProject
立即执行这两个步骤。它将使用所有go
文件正确运行您的项目。
方法02
只需键入go run *.go
并按Enter键。这将执行你所有的go files
。
希望这会对某人有所帮助。
如果要从另一个go文件调用函数并使用Goland,则从“运行”菜单中找到“编辑配置”选项,并将运行类型从“文件”更改为“目录”。它清除所有错误,并允许您从其他go文件调用函数。
如果你的源文件夹是结构化的/ go / src / blog(假设源文件夹的名称是博客)。
- cd / go / src / blog ...(包含你的包的文件夹里面的cd)
- 去安装
- 博客
这应该同时运行所有文件,而不是必须手动列出文件或在命令行上“抨击”方法。
我遇到了与Go11
相同的问题,只是想分享我是如何解决它以帮助其他人以防他们遇到同样的问题。
我在Qazxswpoi之外有我的Go项目,因此我必须在没有打开此选项的情况下打开$GOPATH
,它会给你这个问题;即使你试图建立或测试整个GO111MODULE=on
或package
它将无法解决没有directory
以上是关于golang“undefined”函数在另一个文件中声明?的主要内容,如果未能解决你的问题,请参考以下文章
webconsole提示undefined: ssh.InsecureIgnoreHostkey错误解决方案
关于webconsole报../website/console.go:35: undefined: ssh.InsecureIgnoreHostkey 错误解决方案
关于webconsole报../website/console.go:35: undefined: ssh.InsecureIgnoreHostkey 错误解决方案