【golang - 关键词】package 、import

1. package

1.1 package特性
  1. 一个目录下的同级文件归属一个包。
  2. 包名可以与其目录不同名。
  3. 同目录文件,虽然package包名可与目录不同,但是所有的同目录文件必须是相同的包名
  4. 包名为 main 的包为应用程序的入口包,编译源码没有 main 包时,将无法编译输出可执行的文件。

2. import

2.1 import规则
  1. 标准库查找
    import(
    “fmt”
    )
    这个fmt是Go语言的标准库,是去GOROOT下去加载该模块
  2. 相对路径查找
    import “./model” //当前文件同一目录的model目录,但是不建议这种方式import
  3. 绝对路径查找
    import “shorturl/model” //加载GOPATH/src/shorturl/model模块
  4. 别名操作
    import( f “fmt” ) 别名操作调用包函数时前缀变成了重命名的前缀,即f.Println(“hello world”)
  5. 点操作
    import( . “fmt” ) 其中 . 的作用为:省略前缀的包名。
    也就是前面你调用的fmt.Println(“hello world”) 可以省略的写成Println(“hello world”)
  6. _操作
    import ( “database/sql” _ “github.com/ziutek/mymysql/godrv” )
    _操作其实只是引入该包。当导入一个包时,它所有的init()函数就会被执行,但有些时候并非真的需要使用这些包,仅仅是希望它的init()函数被执 行而已。这个时候就可以使用_操作引用该包了。即使用_操作引用包是无法通过包名来调用包中的导出函数,而是只是为了简单的调用其init函数()。
  7. 批量导入
    import (
    “net/http”
    “encoding/json”
    “io/ioutil”
    “bytes”
    )
2.2 import初始化
  1. 当包里面有init函数时,包被导入第一时间会调用此函数。
  2. import初始化加载顺序如下图:
    import导入递归调用图
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值