go基础知识:
1.通过package(包)来组织的(与python类似)
包是结构化代码的一种方式:每个程序都由包(通常简称为 pkg)的概念组成,可以使用自身的包或者从其它包中导入内容。
如同其它一些编程语言中的类库或命名空间的概念,每个 Go 文件都属于且仅属于一个包。一个包可以由许多以 .go 为扩展名的源文件组成,因此文件名和包名一般来说都是不相同的。
你必须在源文件中非注释的第一行指明这个文件属于哪个包,如:package main。package main表示一个可独立执行的程序,每个 Go 应用程序都包含一个名为 main 的包。
一个应用程序可以包含不同的包,而且即使你只使用 main 包也不必把所有的代码都写在一个巨大的文件里:你可以用一些较小的文件,并且在每个文件非注释的第一行都使用 package main 来指明这些文件都属于 main 包。如果你打算编译包名不是为 main 的源文件,如 pack1,编译后产生的对象文件将会是 pack1.a 而不是可执行程序。另外要注意的是,所有的包名都应该使用小写字母。
2.只有package名为main的包可以包含main函数
3.一个可执行程序有且仅有一个main包
4.通过import关键字来导入其他非main包
5.通过const关键字来定义常量
6.函数体外使用var来进行全局变量的声明和赋值
7.type关键字进行结构或者interface的声明
8.func关键字来进行函数声明
9. 可执行程序的一般结构(有助于规范编程)
- 在完成包的 import 之后,开始对常量、变量和类型的定义或声明。
- 如果存在 init 函数的话,则对该函数进行定义(这是一个特殊的函数,每个含有该函数的包都会首先执行这个函数)。
- 如果当前包是 main 包,则定义 main 函数。
- 然后定义其余的函数,首先是类型的方法,接着是按照 main 函数中先后调用的顺序来定义相关函数,如果有很多函数,则可以按照字母顺序来进行排序。
注意:当未调用导入的包时编译报错,因为go为了提高编译效率,要求所有导入的包都要被使用,否则编译报错。
当导入多个package时,可以用小括号省略多个import
package别名和省略调用:当想用自己的package时,可以给已有名称的包重新命名,在import前加上自己的包名称,然后在双引号原有名称,在后边包的调用时直接用自己命名的包直接调用即可。当把包直接命名成.时,即省略调用,此时在后边调用时可以省略.而直接调用函数。
可见性规则:
使用大小写来决定该常量,变量,类型,接口,结构,函数登是否可以被外部包所调用:
根据规定,函数名首字母小写即为private
函数名首字母大写即为public