HiveBrain v1.2.0
Get Started
← Back to all entries
patterngoCritical

"undefined" function declared in another file?

Submitted by: @import:stackoverflow-api··
0
Viewed 0 times
functionundefineddeclaredfileanother

Problem

I'm trying to write a basic go program that calls a function on a different file, but a part of the same package. However, it returns:

undefined: NewEmployee


Here is the source code:

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!"
}

Solution

Please read "How to Write Go Code".

Use go build or go install within the package directory, or supply an import path for the package. Do not use file arguments for build or install.

While you can use file arguments for go run, you should build a package instead, usually with go run ., though you should almost always use go install, or go build.

Context

Stack Overflow Q#28153203, score: 307

Revisions (0)

No revisions yet.