Estou tentando escrever um programa básico que chama uma função em um arquivo diferente, mas faz parte do mesmo pacote. No entanto, ele retorna:
undefined: NewEmployee
Aqui está o código fonte:
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!"
}
go run
? (e consulte golang.org/doc/code.html )
main.go
e employee.go
? Porque todos os arquivos go devem ter uma declaração de pacote e não vejo nenhum na sua. Veja: golang.org/doc/code.html#PackageNames
go
ferramenta.
package x
, também o seu pacote principal normalmente contém apenas um único arquivo e importa as outras peças necessárias