每天5分钟,学习Go包和导入包

Go语言的程序会组织成若干组文件,每组文件被称为一个包。同一个目录下的所有的.go文件必须声明为同一个包名。

  • 包名一般使用包所在目录的名字。
  • 包名和目录命名时均全小写。
  • 导包时,使用的是全路径。如果有包名相同,可以在导入时取别名。

net/http/
    cgi/
    cookiejar/
        testdata/
    fcgi/
    httptest/
    httputil/
    pprof/
    testdata/

 

main包

所有用Go语言编译的可执行程序,都必须有一个main包和一个main()函数, 作为程序执行的入口。

 

  • 所有的import 都必须在代码里面使用,否则会编译失败,编译器也会提示。

import本地导入

编译器首先会查找Go的安装目录,然后才会查找GOPATH目录。

  • 标准库中的包会在安装Go的位置找到。
  • 开发者创建的包,在GOPATH环境变量指定的目录找到。

例如:

import (

"fmt"

"strings"

)

import 远程导入

通过Github等分布式共享代码是大势所趋。Go语言工具链支持从Github、Bitbucket等网站获取源代码,并按照URL的路径保存到GOPATH目录里面。

例如:

import "github.com/spf13/viper"

  • 这个过程使用 go get 获取任意URL的包。
  • go get具有递归性,会扫描源码树,获得依赖的包。

 

import 命名导入

当多个包同名时,例如file/convert 和 network/convert。 重名的包可以重新命名。

例如:

import(

"fmt"

myfmt "mylib/fmt"

)

> 欢迎关注扫码,加我VX一起学习。更有面试资料,面经分享哦!!!

每天5分钟,学习Go包和导入包

import空白标识符

有时引入一个包,但是却不需要在代码里显示引用,可以用空白标识符_.

 

参考

  • Go in action