go学习第二天

2019-02-14  本文已影响0人  三郎ZFM

包引入里的小技巧:
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

:=赋值操作符只能在函数内部使用,全局变量不能这样声明和赋值。

声明一个局部变量后如果没有使用它,那会得到编译错误,全局变量可以只声明不使用

上一篇 下一篇

猜你喜欢

热点阅读