Go 下载地址:https://golang.google.cn/dl/

1、右键我的电脑  --> 左上方 “高级系统设置”   ---> 环境变量  -->  第二个菜单栏 “系统变量”  -->  找到变量名为 “Path”  --> 双击并点击新建,添加  go/bin 目录  -->  点击确定才会生效

 2、新建文件夹作为源码的工作区(内建3个子文件夹:bin、pkg、src) --> 环境变量中的系统变量新建变量:GOPATH  新建文件夹路径;将新建文件夹的子文件夹bin加入PATH系统变量中  --> 确定保存

工作区
bin目录:存放 go install 安装产生的可执行文件(Windows中以 源码主文件名.exe结尾的可执行文件)

pkg目录:存放 go install 安装产生的用户代码包归档文件(以 .a结尾的文件),自己写的代码包编译安装后产生的文件,例 log包 被编译安装后,产生一个 log.a 的归档文件,会存放在 pkg/log.a 当中。

src目录:保存 go源码文件,若一个源码文件被声明属于代码包 log,则应保存在 src/log 目录中;若直接放于src目录下,必须声明属于代码包 main。

GOPATH
将工作区的目录路径添加到 GOPATH 中,才能使同一工作区的代码对代码包进行调用

GOPATH 中不要包含Go语言的根目录,以便将Go语言本身的工作区同用户工作区严格分开。

通过 Go 工具中的代码获取命令 go get,可将指定项目的源码下载到我们在 GOPATH 中设定的第一个工作区中,并在其中完成编译和安装。

源码文件
命令源码文件
例:某个源码文件 hello.go 被声明属于 package main main代码包,且该文件中包含,无参数的声明了结果的main函数,是命令源码文件,可直接通过 go run hello.go 运行该文件

同一个代码包中所有源码文件,其声明的所属代码包名称必须相同,且 命令源码文件和库源码文件不能存在于同一个代码包中,否则将无法使用 go build 、 go install 命令进行编译安装

规范:命令源码文件单独放置一个代码包中,多个命令源码文件不能放入一个代码包中(致使 go build、go install 命令无法编译安装这个代码包,但是可以单独使用 go run 运行每个源码文件)

当代码包中有且仅有一个命令源码文件时,在所在目录执行 go build 即可在同目录下生成一个与目录同名的可执行文件;若使用 go install 则在工作区的 bin目录下 生成可执行文件(只有当 GOPATH 环境变量中只包含一个工作区目录路径时才生效,反之失败 --> 需设置 GOBIN 环境变量)

库源码文件
库源码文件不包含 无参数声明和无结果声明的 main函数,库源码文件声明的包名会与它直接所属的代码包(目录)名一致

安装库源码文件时所生成的归档文件会被存放到当前工作区的 pkg 目录中

测试源码文件

是可以通过执行 go test 命令运行当前代码包下的所有测试源码文件的特殊库文件。

测试源码文件的条件:

  • 文件名需要以"_test.go"结尾。
  • 文件中需要至少包含一个名称以 Test 开头或 Benchmark 开头,且拥有一个类型为 *testing.T 或 *testing.B 的参数的函数。testing.T 和 testing.B 是两个结构体类型。而 *testing.T 和 *testing.B 则分别为前两者的指针类型。分别是功能测试和基准测试所需的。

常用命令

go build 可将Go源码编译成二进制的可执行文件,但需手动运行该二进制文件;

go clean  移除当前源码包里面编译生成的文件

go run 它会在编译后直接运行Go程序,编译过程中会产生一个临时文件,但不会生成可执行文件。

go get  可从互联网上下载或更新指定的代码或一级依赖包,并对他们进行编译和安装

go install 用于编译并安装指定的代码包及它们的依赖包

go test 会自动读取源码目录下面名为 *_test.go的文件,生成并运行测试用的可执行文件

包导入

标准引用方式: import "fmt"

此时可以用“fmt.”作为前缀引用包内可导出元素,这是常用的一种方式。

别名引用方式如下: import F "fmt"

此时相当于给包 fmt 起了个别名 F,用“F.”代替标准的“fmt.”作为前缀引用 fmt 包内可导出元素。

省略方式如下: import . "fmt"

此时相当于把包 fmt 的命名空间直接合并到当前程序的命名空间中,使用 fmt 包内可导出元素可以不用前缀“fmt.”,直接引用。示例如下:

package main
import . "fmt"
func main () {
//不需要加前级 fmt.
Println( "hello , world!”)
}

仅执行包初始化 init 函数: import _ "fmt"

使用标准格式引用包,但若在代码中并未使用包,编译器会报错。如果包中有 init 初始化函数,则通过 import _ "packageName" 这种方式引用包,仅执行包的初始化函数,即使包没有 init 初始化函数,也不会引发编译器报错。

  • 一个包可以有多个 init 函数,包加载会执行全部的 init 函数,但并不能保证执行顺序,所以不建议在一个包中放入多个 init 函数,将需要初始化的逻辑放到一个 init 函数里面。
  • 包不能出现环形引用。比如包 a 引用了包 b,包 b 引用了包 c,如果包 c 又引用了包 a,则编译不能通过。
  • 包的重复引用是允许的。比如包 a 引用了包 b 和包 c,包 b 和包 c 都引用了包 d。这种场景相当于重复引用了 d,这种情况是允许的,并且 Go 编译器保证 d 的 init 函数只会执行一次。

注意

  • `{ `  不能单独放在一行,否则产生编译错误
  • 如果顶极类型名字首字母(包括:function, method, constant or variable, or of a structure field or method)是大写,那么引用了这个包(package)的使用者就可以访问到它。不然 名称和被命名的东西将只能有package内部看到。
Go语言标准库常用的包及功能
Go语言标准库包名 功  能
bufio 带缓冲的 I/O 操作
bytes 实现字节操作
container 封装堆、列表和环形列表等容器
crypto 加密算法
database 数据库驱动和接口
debug 各种调试文件格式访问及调试功能
encoding 常见算法如 JSON、XML、Base64 等
flag 命令行解析
fmt 格式化操作
go Go语言的词法、语法树、类型等。可通过这个包进行代码信息提取和修改
html HTML 转义及模板系统
image 常见图形格式的访问及生成
io 实现 I/O 原始访问接口及访问封装
math 数学库
net 网络库,支持 Socket、HTTP、邮件、RPC、SMTP 等
os 操作系统平台不依赖平台操作封装
path 兼容各操作系统的路径操作实用函数
plugin Go 1.7 加入的插件系统。支持将代码编译为插件,按需加载
reflect 语言反射支持。可以动态获得代码中的类型信息,获取和修改变量的值
regexp 正则表达式封装
runtime 运行时接口
sort 排序接口
strings 字符串转换、解析及实用函数
time 时间接口
text 文本模板及 Token 词法器

GoLand 下载地址:https://www.jetbrains.com/go/

激活码请全网搜索: goland 激活码

最新文章

  1. Tomcat相关的笔记
  2. java生成生成图片缩略图
  3. Scripting Languages
  4. String 类的常用字符串方法
  5. 使用Google API 下拉刷新或者增加数据 SwipeRefreshLayout
  6. WPF自定义控件(一)——Button
  7. linux下的加减运算
  8. hdu 4696 Answers
  9. unity3d中namespace的使用注意问题
  10. NOPI使用手册
  11. Plupload 上传控件使用指南
  12. Viruses!!!!!
  13. memcached加固
  14. Django REST Framework API Guide 05
  15. HTTP1.1协议-RFC2616-中文版
  16. python 数据类型二 (列表和元组)
  17. WIP 003 - Create page with a tablewalker
  18. C# winform pictureBox如何突出显示,放大并给pictureBox边框变色
  19. Python Django 前后端数据交互 之 后端向前端发送数据
  20. sqoop1的安装以及数据导入导出测试

热门文章

  1. SQLite接口函数 - C核心api实践与总结
  2. SQL注入获取Sa账号密码
  3. 【题解】Luogu P5337 [TJOI2019]甲苯先生的字符串
  4. Bootstrap中的datetimepicker用法总结
  5. C# vb .net实现邮戳效果滤镜
  6. kali之使用sqlmap进行sql注入
  7. 2019-07-22 phpStudy配置虚拟主机
  8. 纯css实现省略号,兼容火狐,IE9,chrome
  9. 判断RecyclerView到达底部的几种方法
  10. 【故障处理】分布式事务ORA-01591错误解决