如何创建库文件
创建一个文件夹 创建若干个.go 文件,并声明他们归属于同一个包
util 是存放date.go time.go 的目录 但是包不见得就是util 因为声明的包名可以和文件夹的名字不一致,但是规范的做法最好是一致的
同一个包下,不能声明名称相同的方法,比如date.go 中有一个print 方法,那么time.go 中就不能声明print的方法
date.go
package util
import "fmt"
func printDate(){
fmt.Println("2018-12-12")
}
time.go
package util
import "fmt"
func printTime(){
fmt.Println("12:00:00")
}
我们在main.go 中引入util包,调用他们的方法
package main
import (
"awesomeProject/main/util"
)
func main(){
util.printDate()
util.printTime()
}
执行命令
go run main.go
为什么会报错了,下面我们接着讲
作用域
- 大写字母开头
表示该方法或者变量等可以被其他包内的访问到
- 小写字母开头
只能在自己的包内被方位到
我们将date.go 方法修改一下
package util
import "fmt"
func PrintDate(){
fmt.Println("2018-12-12")
printTime()
}
在同一个包内访问模块的方法是不需要添加限定符的
main.go
package util
import "fmt"
func PrintDate(){
fmt.Println("2018-12-12")
printTime()
}
接下来我们执行命令
go run main.go
如果我们不行让模块的方法,被其他模块访问怎么办?
创建internal 包 ,只要包命名为interal,那么这个包就是内包,只允许直接父级和其子包访问,其它包只要访问这个内置包都是非法的,编译会出错