Go之路(二):包的概念
包的概念
首先,Go是模块化的,这点与python类似
每个代码文件的开头都需要声明是该文件是属于哪个包的
写代码前一定要规划好目录结构(非常重要)!
练习一:一个程序如果包含两个包add和main,其中add包中有两个变量:Name和Age,请问如何访问到这连个变量
目录结构:
add.go
package add var Name string = "tom" var Age int = 12
main.go
package main import( "fmt" a "day2/example1/add" ) func main() { fmt.Println(a.Name, a.Age) }
然后编译,-o代表路径,执行
练习一小结:
1.变量名如果需要变成可引用的需要首字母大写
2.go是编译型语言,与python这种解释型语言不同,解释行语言是解释一行执行一行,但是编译型语言是在代码编译时就已经确定好的,所以不能出现如下情况
这样子会报错,因为该文件没有入口函数,所以不能给Name和Age直接赋值,除非在变量声明的时候就指定变量的值。
3.在引入包前面可以加上别名,如果包的前面是_ 代表只引入但不使用
练习2:每个程序都包含一个init,这个init函数自动被go运行框架调用,写一个程序演示这个功能?
目录结构
add.go
main.go
sub.go
然后,编译,执行
练习2小结:
1.因为是编译型语言,所以最先是全局变量的声明,然后是init函数,再是main函数,如果引入的包里也有init函数,那么执行顺序是最深层的那个包的编译,然后init,然后往上。