Packages and Modules
Package Main
Every runnable Go program starts in package main with a main function.
package main
`package main` tells Go to build an executable program instead of a reusable library package.
Package Main
package_main.go
Replay: real traced execution (multi-file project)
package main
import "fmt"
func main() {
var appName = "GoApp"
packageName := "main"
entryPoint := "main"
fmt.Println("package=", packageName)
fmt.Println("entry=", entryPoint)
fmt.Println("app=", appName)
}
package main
import "fmt"
func main() {
var appName = "Toolbox"
packageName := "main"
entryPoint := "main"
fmt.Println("package=", packageName)
fmt.Println("entry=", entryPoint)
fmt.Println("app=", appName)
}
package main
import "fmt"
func main() {
var appName = "Runner"
packageName := "main"
entryPoint := "main"
fmt.Println("package=", packageName)
fmt.Println("entry=", entryPoint)
fmt.Println("app=", appName)
}
appName ← "GoApp", packageName ← "main", entryPoint ← "main"
5func main() {6 var appName→ "GoApp" = "GoApp" //@appName="Toolbox", "Runner"7 packageName→ "main" := "main"8 entryPoint→ "main" := "main"910 fmt.Println("package=", packageName"main")11 fmt.Println("entry=", entryPoint"main")12 fmt.Println("app=", appName"GoApp")13}outputpackage= main entry= main app= GoApp
appName ← "Toolbox", packageName ← "main", entryPoint ← "main"
5func main() {6 var appName→ "Toolbox" = "Toolbox"7 packageName→ "main" := "main"8 entryPoint→ "main" := "main"910 fmt.Println("package=", packageName"main")11 fmt.Println("entry=", entryPoint"main")12 fmt.Println("app=", appName"Toolbox")13}outputpackage= main entry= main app= Toolbox
appName ← "Runner", packageName ← "main", entryPoint ← "main"
5func main() {6 var appName→ "Runner" = "Runner"7 packageName→ "main" := "main"8 entryPoint→ "main" := "main"910 fmt.Println("package=", packageName"main")11 fmt.Println("entry=", entryPoint"main")12 fmt.Println("app=", appName"Runner")13}outputpackage= main entry= main app= Runner