gopl包和工具

  

空导入

  

如果导入包的名字没有在文件中引用,就会产生一个编译错误。但是,有时候必须导入一个包,这仅仅是为了利用它的副作用:对包级别的变量执行初始化表达式求值,并执行它的init函数。这里必须使用一个重命名导入,使用下划线作为替代的名字。这表示导入的内容为空白标识符,通常情况下,空白标识不可能被引用:

  
 <代码类=" language-go ">进口_“图像/png”//注册png解碼器 
  

<强>空白导入强,多数情况下,使用空白引用导入额外的包,开启主程序中可选的特性。

  

命名

  

一些建议,关于遵从去的习惯来给包和它的成员进行命名。

  

包的命名

  

包名使用简短的名字,但是不要短到完全看不懂。
尽可能保持可读性和无歧义。例如,不要把一个辅助工具包命名为实效,使用imageutil或ioutil这样更具体和清晰的名字。
避免使用经常用于相关局部变量的名字作为包名,或者迫使使用者使用重命名导入,例如,路径就要避免用作包名。
命名通常使用统一的形式,使用复数形式来避免和关键字的冲突。例如,标准包字节,错误,字符串。

  

包成员的命名

  

引用包的成员会带上包名,所以设计成员名称的时候,要考虑包名和成员名这两部分协同一起表示的意义,而不只是成员名。
对于包导出的一个数据类型及其方法,通常有一个新的函数用来创建实例。而导出的类型的名称可能和包名重复,例如,模板。模板或兰德。兰特。
包中最重要的成员使用最简单的命名。

  

去工具

  

去工具将不同种类的工具集合并为一个命名集。它的命令行接口使用“瑞士軍刀”风格,有十几个子命令。可以运行<代码>去帮助>   

 <代码>错误错误报告
  构建编译包和依赖关系
  干净的文件和缓存文件删除对象
  doc文档包或符号
  env打印环境信息
  更新补丁包使用新的api
  fmt go(格式化)包的来源
  生成生成由处理源文件
  下载并安装包和依赖关系
  安装编译和安装包和依赖关系
  包或模块列表列表
  国防部模块维护
  运行编译和运行程序
  测试测试包
  工具运行指定的工具
  版本打印去
  兽医报告可能错误包 
  

工作空间的组织

  

环境变量GOPATH执行工作空间的根。当需要切换不同的工作空间时,更新GOPATH变量即可。
切换环境变量然后下载代码:

  
 <代码>美元出口GOPATH=$ HOME/gobook
  美元去gopl.io/?/代码> 
  

命令最后的三个点的意义,去命令下一节会讲。

  

GOPATH有三个子目录,分别用于存放不同类型的文件:

  
      <李> src:源码文件。每一个包在一个目录中李   <李>包裹:归档文件。构建工具存储编译后的包的位置,参考后面的去安装命令李   <李>本:可执行文件。许多用户会将该目录添加到可执行程序的搜索列表中李   
  

环境变量GOROOT指定去发行版的根目录,其中提供所有标准库的包。用户无须设置GOROOT,因为默认情况下在安装去言语的时候会将其设置为安装路径。(如果机器上装了多个版本的,就可以通过这个环境变量来切换了吧。不过去目前需要使用多个版本的问题。

  

命令去env可以查看环境变量。

  

包的下载

  

去命令可以下载单一的包,也可以使用…符号来下载子目录或仓库。并且还会计算并下载所有依赖的包。

  

让包使用一个自定义的导入路径,但是真实的代码却是由更通用的站点提供,例如github。这只需要在页面的HTML中添加如下的元数据,它重定向去工具到实际托管地址的Git仓库:

  
 <代码类=" language-html "> & lt;元name=癵o-import”内容="golang.org/x/net git https://go.googlesource.com/net "在 
  

去指定- u参数,将确保命令会访问所有的包(无论本地是否已经有了)更新到最新版本。如果没有这个参数,已经存在在本地的包就做任何处理和确认。

  

包的构建

  

命令去构建编译每一个命令行参数中的包。如果包是一个库,结果会被丢弃。如果是主要的包,则会创建可执行程序。
命令去运行则可以构建之后直接运行。适用于即用即抛型的程序。
第一个不是以.go结尾的参数会作为去可执行程序的参数列表的开始。

gopl包和工具