wiki/content/20200826142755-packages.md

66 lines
1.2 KiB
Markdown

---
date: 20200826
id: 3123184d-c919-4cf6-8339-3f9b8ca5a1db
title: Golang Packages
---
# Basics
Every Go program is made up of packages. Programs start running in
package \`main\`.
By convention the pacckage name is the same as the last element of the
import path. For instance, the \`math/rand\` package comprises files
that begin with the statement \`package rand\`.
``` go
package main
import (
"fmt"
"math/rand"
)
func main() {
fmt.Println("My favorite number is", rand.Intn(10))
}
```
# Imports
It's best practice to convert multiple import statements to a "factored"
import statement:
``` go
package main
import "fmt"
import "math"
func main() {
fmt.Printf("This uses multiple import statements\n")
fmt.Printf("Now you have %g problems.\n", math.Sqrt(7))
}
```
should be
``` go
package main
import (
"fmt"
"math"
)
func main() {
fmt.Printf("This uses a parenthesized \"factored\" import statement\n")
fmt.Printf("Now you have %g problems.\n", math.Sqrt(7))
}
```
# Exported names
In Go, a name is exported if it begins with a capital letter. When
importing a package, you can refer only to its exported names. Any
"unexported" names are not accessible from outside the package.