一尘不染

golang在另一个文件中声明的“未定义”功能?

go

我正在尝试编写一个基本的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!"
}

阅读 496

收藏
2020-07-02

共1个答案

一尘不染

请阅读“如何编写Go代码”

不要/src在您的中使用GOPATH。软件包位于中$GOPATH/src

对于buildinstall您需要将文件放在包目录中。

对于go run,您需要提供所有文件作为参数:

go run main.go employee.go

但是,您几乎应该始终使用go install或或go build(最好是使用前者,因为go build使用非主软件包时会引起混乱)

2020-07-02