包引入里的小技巧:
1、省略导入的包前缀
import(
. "fmt"
)
这样使用fmt包时,可以直接使用函数名,不需要使用fmt前缀
如:
Println("Hello world")
2、处理包冲突
同一个源代码文件中,引入多个包,包的最后一级名字不能重复,否则会引入冲突和编译错误。解决办法:
给其中的一个包或所有的包起一个别名:
import(
"github.com/Sirupsen/logrus"
mylogrus "gopcp.v2/helper/log/logrus"
)
3、引入包,但只想初始化它,不需要调用它
import(
_ "github.com/Sirupsen/logrus"
)
以上的效果是,只调用这个包的初始化函数,但不会在当前源代码文件中调用这个包里的函数。
4、冗余包导入
如果有多余的包导入的时候,代码中又没有调用这个包里的函数,编译的时候会出错,需要把冗余的包去掉。
---------------初始化函数相关:
go中的每个包都可以有初始化函数,形式如下(函数名只能是init,无参数,无返回):
func init(){
fmt.Println("初始化中")
}
go程序的所有模块的初始化函数会在程序的main函数之前被调用,所有模块的全局变量会在初始化函数前被赋初值。
go的数据类型:
bool型,数字类型,字符串类型(UTF-8编码的Unicode),派生类型(指针,数组,结构化,Channel,函数,切片,接口,Map)。
其中数字类型可以分为:
int(8,16,32,64位宽)
float(32位和64位)
复数【64位(32位的实数和虚数)和128位(64位的实数和虚数)】
其它数据类型:
byte,rune,uint,uintptr
:=赋值操作符只能在函数内部使用,全局变量不能这样声明和赋值。
声明一个局部变量后如果没有使用它,那会得到编译错误,全局变量可以只声明不使用