在另一个文件中声明的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此选项…