【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初始化加载顺序如下图:
    【golang - 关键词】package 、import_第1张图片

你可能感兴趣的:(golang,golang,package,import)