包
每一个Go 程序都是有包组成的。
程序从名字为mian的包开始运行。
下面的程序中使用了两个包。它们引入的路径分别为 “fmt” 和 “math/rand”。
按照惯例,被引入的包的名字和引入路径的最后一个元素是一样的。例如 “math/rand”
包的文件中的开头就有声明 package rand 。
#packages.go
package main import ( "fmt" "math/rand" ) func main() { fmt.Println("My favorite number is", rand.Intn(10)) }
引入
这些写在 import 括号里的 代码组成了 引入声明。
你也可以写多个 引入声明 像下面一样:
import "fmt"
import "math"
但是写在括号里这种引入声明是比较好的代码风格。
>\#imports.go
>```
>package main
>
>import (
> "fmt"
> "math"
>)
>
>func main() {
> fmt.Printf("Now you have %g problems.", math.Sqrt(7))
>}
>```
#####暴露的名称
在Go里,首字母为大写字母的名称是被暴露的。例如,Pizza是一个被暴露的名字,另外Pi是在math包中被暴露的。
pizza 和 pi 并没有大写首字母,因此是私有的。
当一个包被引用的时候,你只能去使用被暴露的名称。任何一个私有的名称不能从包外被使用。
运行下面的代码,并注意提示的错误信息。
将 math.pi 改为 math.Pi 改正错误并重新运行。
>\#exported-names.go
>```
>package main
>
>import (
> "fmt"
> "math"
>)
>
>func main() {
> fmt.Println(math.pi)
>}
>```