库源码文件
是不能被直接运行的源码文件,它仅用于存放程序实体,这些程序实体可以被其他代码使用(只要遵从 Go 语言规范的话)
那么程序实体是什么呢?在 Go 语言中,程序实体是变量、常量、函数、结构体和接口的统称。
怎样把命令源码文件中的代码拆分到其他库源码文件?
最最最重要:
1、在同一个目录下的源码文件都需要被声明属于同一个代码包。
2、源码文件声明的包名可以与所在目录的文件夹名不同,但是这些文件声明的包名必须一致。
模块化编程
模块化程序设计是指在进行程序设计时将一个大程序按照功能划分为若干小程序模块,每个小程序模块完成一个确定的功能,并在这些模块之间建立必要的联系,通过模块的互相协作完成整个功能的程序设计方法.
实例一 main.go 和 hello.go 在同一级
package main
import "flag"
var username string
func init() {
flag.StringVar(&username,"username","admin","the ai user")
}
func main() {
flag.Parse()
hello(username)
}
package main
import "fmt"
func hello(username string) {
fmt.Printf("Hello : %s
", username)
}
运行:
D:GoWorkspacesrcpolarismain>go run main.go hello.go --username="sixinshuier"
Hello : sixinshuier
如何查看命令行帮助:
go run main.go hello.go --help
探究导入时,导入代码包路径?还是目录的相对路径?
目录的相对路径
访问权限
go语言中,名称的首字母为大写的程序实体才可以被当前包外的代码引用,否则它就只能被当前包内的其他代码引用
Internal代码包
具体规则是,internal代码包中声明的公开程序实体仅能被该代码包的直接父包及其子包中的代码引用。当然,引用前需要先导入这个internal包。对于其他代码包,导入该internal包都是非法的,无法通过编译。