微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

golang import使用

相对路径

import "./model"

引用当前目录中的model,但是太依赖路项目目录结构,一般不建议这样使用。

绝对路径

import "github.com/grpc"

go build将从$GOPATH/src/下查找。

别名操作

import log "fmt"

通过别名可以避免同名包的引用。

点操作

import . "github.com/grpc"

点操作可以省略前缀的包名

_操作

import _ "net/http/pprof"

_操作是不适用包里面的函数,而之调用init函数

程序初始化的流程

程序的初始化和执行都起始于main包。如果main包还导入了其它的包,那么就会在编译时将它们依次导入。有时一个包会被多个包同时导入,那么它只会被 导入一次(例如很多包可能都会用到fmt包,但它只会被导入一次,因为没有必要导入多次)。当一个包被导入时,如果该包还导入了其它的包,那么会先将其它 包导入进来,然后再对这些包中的包级常量和变量进行初始化,接着执行init函数(如果有的话),依次类推。等所有被导入的包都加载完毕了,就会开始对 main包中的包级常量和变量进行初始化,然后执行main包中的init函数(如果存在的话),最后执行main函数。下图详细地解释了整个执行过程:

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐