课程名称:Go语言第一课
课程章节:Go语言优点优势及劣势
课程讲师: 郝林
课程内容:
本课程主要是对Go语言代码包的学习
首先了解代码包的作用:编译和归档Go程序的最基本单位。包括胆码划分、集结和依赖的有效组织形式,也是控制权限的辅助手段。
代码包的规则:一个代码包实际上就是一个由导入路径代表的目录;
导入路径为 《工作区目录》/src/文件
或 《工作区目录》/pkg/文件
代码包的声明
每个源码文件必须声明其所属的代码包;同一个代码包中的所有源码文件声明的代码包应该是相同的
代码包声明与导入的区别:
代码包声明:应该是该代码包的导入路径的最右子路径
代码包导入:应该与其导入路径一直,例如:flag fmt strings 可以写成
import(
"flag"
"fmt"
"strings"
)
带别名方式导入: import str "strings" 调用 str.HasPrefix()
本地化导入: import . "strings" 调用时候直接写函数 HasPrefix()
仅初始化: import _ "strings" 仅执行初始化函数 init()
代码包初始化 init
代码包初始化函数即:无参数声明和结果声明的init函数
init函数可以被声明在任何文件中,且可以有多个
init函数的执行时机-----单一代码包内
对所有全局变量进行求值-->执行所有的init函数。
init函数的执行时机-----不同代码包之间
注意:我们不应该对在同一个代码包中被导入的多个代码包的init函数的执行顺序做出假设!
执行被导入的代码包中的init函数-->执行导入它的那个代码包的init函数
导入顺序 A -> B -> C
执行顺序 C B A
init函数的执行时机-----所有涉及到的代码包
课程收获:
通过这次课程了解了Go 的初始化函数 init(), 一个文件中如果存在多个函数的话,init 函数会一个执行 。还有代码包的声明的几种形式,与Java的包的导入有差异,比较简单,一目了然。有了初步的了解后,相信会对接下来的 学习打下一个好的基础,GOGOGO!!!