在另一个文件中声明的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!" }
提前致谢
请阅读“如何编写前往代码” 。
不要在你的GOPATH
使用/src
。 包位于$GOPATH/src
。
为了build
或install
您需要将文件放在软件包目录中。
为了go run
,您需要提供所有文件作为参数:
go run main.go employee.go
但是,你应该几乎总是使用go install
,或go build
(最好是前者,因为go build
造成混乱,当使用非主包)
我刚刚在Gogland遇到了同样的问题,并且发现你需要将文件中的“Run Kind:”更改为Package。 如果进入运行/编辑configuration,您可以从下拉列表中select此选项…