Call a function from another package in Go
You import the package by its import path, and reference all its exported symbols (those starting with a capital letter) through the package name, like so:
import "MyProj/functions"
functions.GetValue()
You should prefix your import in
main.go
with:MyProj
, because, the directory the code resides in is a package name by default in Go whether you're calling itmain
or not. It will be named asMyProj
.package main
just denotes that this file has an executable command which containsfunc main()
. Then, you can run this code as:go run main.go
. See here for more info.You should rename your
func getValue()
infunctions
package tofunc GetValue()
, because, only that way the func will be visible to other packages. See here for more info.
File 1: main.go (located in MyProj/main.go)
package main
import (
"fmt"
"MyProj/functions"
)
func main(){
fmt.Println(functions.GetValue())
}
File 2: functions.go (located in MyProj/functions/functions.go)
package functions
// `getValue` should be `GetValue` to be exposed to other packages.
// It should start with a capital letter.
func GetValue() string{
return "Hello from this another package"
}