包 是多个Go源码的集合,是一种高级的代码复用方案,Go语言为我们提供了很多内置包,如fmt、os、io 等。
如果想在一个包中引用另外一个包里的标识符(如变量、常量、类型、函数等)时,该标识符必须是对外可见的(public)。在Go语言中只需要将标识符的首字母大写就可以让标识符对外可见了。
包的导入
- import导入语句通常放在文件开头包声明语句的下面。
- 导入的包名需要使用双引号包裹起来。
- 包名是从$GOPATH/src/后开始计算的,使用/进行路径分隔。
- Go语言中禁止循环导入包。
例子:把加减乘除计算的方法放在包里被引用
文件结构:
usepackage
-- main.go
mathtool // 名字可以随便取,可以不跟package 名一样。但是底下所有go文件都得归属与同一个package
-- add.go
-- sub.go
-- other.go
代码:
usepackage\main.go
package main
import (
"fmt"
s "github.com/sun******/learning/mathtool"
)
// 修改包名的时候想到的,尽可能的引用包别名,这样,包名改变不影响其他代码
func main() {
a := 2
b := 1
fmt.Println(s.Add(a, b))
fmt.Println(s.Sub(a, b))
fmt.Println(s.Multi(a, b))
fmt.Println(s.Div(a, b))
}
mathtool/sub.go
package mathmethods
import "fmt"
// Sub hahaha
func Sub(x, y int) int {
fmt.Println("this Sub in sub.go")
return x - y
}
mathtool/add.go
package mathmethods
import "fmt"
// Add hahaha
func Add(x, y int) int {
fmt.Println("this Add in add.go")
return x + y
}
mathtool/other.go
package mathmethods
import "fmt"
// Multi hahaha
func Multi(x, y int) int {
fmt.Println("this Multi in other.go")
return x * y
}
// Div hahaha
func Div(x, y int) int {
fmt.Println("this Div in other.go")
return x / y
}
运行结果:
>go run main.go
this Add in add.go
3
this Sub in sub.go
1
this Multi in other.go
2
this Div in other.go
2
来源:CSDN
作者:Ekko Sun
链接:https://blog.csdn.net/BitterCoffeeAndSmoke/article/details/104157743