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,然后往上。

 

posted @ 2018-11-29 23:51  __Miracle  阅读(151)  评论(0编辑  收藏  举报