一 工作区和GOPATH
工作区是放置Go源码文件的目录。
一般情况下,Go源码文件都需要存放到工作区。
但是对于命令源码文件来说,这不是必须的。
每一工作区的结构都类似下图所示:
1、src目录
用于存放源码的文件
以代码包为组织形式
2、pkg目录
用于存放归档文件(名称以.a为后缀的文件)
所有归档文件都会被存放在该目录下的平台相关目录中,同样以代码包为组织形式。
平台相关目录:以$GOOS_$GOARCH为命名方式,如linux_amd64,其中GOOS和GOARCH是两个隐含的Go语言环境变量。
例如:<工作区目录>/pkg/<平台相关目录>/<一级代码包>/<二级代码包>/<末级代码包>.a
3、Bin目录
用于存放当前工作区中Go程序的可执行文件。
有两点需要注意
a:当环境变量GOBIN已有效设置时,该目录会变得无意义。
b:当GOPATH的值包含多个工作区的路径时,必须设置GOBIN,否则无法成功安装Go程序的可执行文件,
二 源码文件的分类和含义
名称以.go为后缀,内容以Go语言代码组织的文件
多个Go源码文件是需要用代码包组织起来的
源码文件分三类:
1、命令源码文件:
声明自己属于main代码包、包含无参数声明和结果声明的main函数。
被安装后,相应的可执行文件会被存放到GOBIN指向的目录或<当前工作区目录>/bin下。
命令源码文件是Go程序的入口,但不建议把程序都写在一个文件中。
注意:同一个代码包中强烈不建议直接包含多个命令源码文件。
2、库源码文件:
不具备命令源码文件的那两个特征的源码文件。
被安装后,相应的归档文件会被存放到<当前工作区目录>/pkg/<平台相关目录>下
3、测试源码文件:
不具备命令源码文件的那两个特征的源码文件。
名称以_test.go为后缀。
其中命令源码文件和库源码文件是一般意义上的go语言程序,测试源码文件是辅助源码文件。
相关推荐
了解Go语言的包(package)概念,以及如何组织和构建Go程序。 掌握Go语言的标准库和常用包的使用,如fmt、os、io等。 容器与数据结构: 学习Go语言中的数组、切片(slice)、映射(map)和列表等容器类型,以及...
-a:将/etc/fstab中定义的所有文件系统挂上。 -F:这个命令通常和-a一起使用,它会为每一个mount的动作产生一个行程负责执行。在系统需要挂上大量NFS文件系统时可以加快加载的速度。 -f:通常用于除错。它会使...
3.5 定义和使用 21 3.6 执行流程 21 3.7 形参和实参 22 3.8 变量和形参是局部的 23 3.9 栈图 23 3.10 有返回值函数和无返回值函数 24 3.11 为什么要有函数 25 3.12 调试 26 3.13 术语表 26 3.14 ...
类,再定义类的接口和继承层次,建立对象之间的基本关系。你的设计应该对手头的问题有针对性,同时对将来的问题和需求 也要有足够的通用性。 你也希望避免重复设计或尽可能少做重复设计。有经验的面向对象设计者会...
第二讲 扩展频谱通信的基本概念 5 2.1 扩展频谱通信的定义 5 2.2 扩频通信的理论基础 6 2.3 扩频通信的主要性能指标 8 第三讲 扩展频谱通信的主要特点 9 3.1 易于重复使用频率,提高了无线频谱利用率 9 3.2 抗干扰性...
所有的翻译和校对工作历时半年多,在此,我要感谢为本书的出版付出辛勤汗水的电子工业出版社博文视点的工作人员,特别要感谢本书的策划编辑朱沭红老师和责任编辑顾慧芳老师,她们的严谨认真工作使该译本可读性更高,...
媒体查询 CSS媒体查询允许开发者基于浏览网站的设备的特性来应用不同的样式申明,最常用的特性是视口宽度。 GCF 谷歌内嵌浏览器框架, 使用此插件,用户可以通过Internet Explorer的用户界面,以Chrome内核的渲染方式...
常用的匹配正则表达式和实例 经典正则表达式 delegate vs. event 我是谁?[C#] 表达式计算引擎 正式发布表达式计算引擎WfcExp V0.9(附源码) 运算表达式类的原理及其实现 #实现的18位身份证格式验证算法 身份证15To18...
隐藏边注 本文右边有一些注释,主要是用来提供一些相关信息,或者给没有程序员背景的读者解释一些基本概念,通常可以忽略。 正则表达式到底是什么东西? 字符是计算机软件处理文字时最基本的单位,可能是字母,数字...
代码的位置必须在物理内存中才能被运行,由于现在的操作系统中有非常多的程序运行着,内存中不能够完全放下,所以引出了虚拟内存的概念。把哪些不常用的程序片断就放入虚拟内存,当需要用到它的时候在load入主存...
四、常用命令 1. 帮助 在IOS操作中,无论任何状态和位置,都可以键入“?”得到系统的帮助。 2. 改变命令状态 任务 命令 进入特权命令状态 enable 退出特权命令状态 disable 进入设置对话状态 setup 进入全局...
ftp1和ftp2用户的具体参数配置都需要/ftpconfig下的ftp1和ftp2文件来定义.我将已经写好的配置如下: [root@centos vsftpd]# cat /ftpconfig/ftp1 local_root=/var/ftp/vuser guest_username=vuser anon_world_...
│ 公司培训文档-混淆的基本概念.doc │ 基本算法.doc │ 孙卫琴精通struts.基于MVC的.java.web设计与开发.pdf │ 学习Struts提供的和Form相关标签.txt │ 日企编码规范.doc │ 电信盈科面试题.pdf │ 速算.txt │ ...
│ 公司培训文档-混淆的基本概念.doc │ 基本算法.doc │ 孙卫琴精通struts.基于MVC的.java.web设计与开发.pdf │ 学习Struts提供的和Form相关标签.txt │ 日企编码规范.doc │ 电信盈科面试题.pdf │ 速算.txt │ ...
│ 公司培训文档-混淆的基本概念.doc │ 基本算法.doc │ 孙卫琴精通struts.基于MVC的.java.web设计与开发.pdf │ 学习Struts提供的和Form相关标签.txt │ 日企编码规范.doc │ 电信盈科面试题.pdf │ 速算.txt │ ...
│ 公司培训文档-混淆的基本概念.doc │ 基本算法.doc │ 孙卫琴精通struts.基于MVC的.java.web设计与开发.pdf │ 学习Struts提供的和Form相关标签.txt │ 日企编码规范.doc │ 电信盈科面试题.pdf │ 速算.txt │ ...
│ 公司培训文档-混淆的基本概念.doc │ 基本算法.doc │ 孙卫琴精通struts.基于MVC的.java.web设计与开发.pdf │ 学习Struts提供的和Form相关标签.txt │ 日企编码规范.doc │ 电信盈科面试题.pdf │ 速算.txt │ ...