1、配置环境变量
- GOPATH:D:gowork(工作目录,可以指定,主要用于放置项目,在golang1.11版本后引入go.mod)
- GOPRIVATE:git.mycompany.com,github.com/my/private(依赖拉取地址,配置开发环境安装工具包,错误时配置此项)
- GOPROXY:https://goproxy.cn,direct (GitHub依赖库加速地址,配置开发环境安装工具包,超时配置此项,和上面一项一起使用)
- GOROOT:D:go (go安装目录,为当前电脑安装目录)
2、编译运行指令
- go build test.go:将相应源码编译为可执行二进制文件(不同系统编译之后文件不同,如Windows下编译为exe,可以修改配置项,在Windows下编译成Linux执行文件,具体百度)
- go build -o mhello.exe hello.go:可以指定编译后可执行二进制文件名称
- go run test.go:直接运行代码
- gofmt -w test.go:格式化源码文件,并将格式化后代码重新写入
二者区别: go build 将相关依赖库一起打包,可以在任意机器运行,go run 需要go环境支持
3、标识符规范,go不同之处
- 变量名、函数名、常量名首字母大写:表示公开,可以被其他包访问(类似于Java public)
- 变量名、函数名、常量名首字母小写:表示私有,只能在本包使用(类似于Java private)
4、工作目录
介绍:go.mod是golang1.11版本引入的官方包管理工具用于解决之前没有地方记录依赖包具体版本的问题,方便依赖包的管理。
官方定义:modules是相关go包的集合,是源代码交换和版本控制的单元。go命令直接支持使用modules,包括记录和解析对其他模块的依赖性。modules替换旧的集合GOPATH(工作目录,不在需要将项目放置于工作目录下,只需要初始化项目生成go.mod文件即可),来指定使用那些源文件。modules和传统的GOPATH不同,不需要包含例如src,bin这样的子目录,一个源代码目录甚至是空目录都可以作为modules,只要其中包含go.mod文件
使用命令:go mod init 模块名称 初始化模块(go mod init hello)
使用go.mod:通过go env查看配置
- GO111MODULE=off:go命令行将不会支持module功能,寻找依赖包的方式将会沿用旧版本那种通过vendor目录或者GOPATH模式查找
- GO111MODULE=on:go命令行会使用modules,而不去GOPATH目录下查找
- GO111MODULE=auto:默认值,go命令行将会根据当前目录来决定是否启用module功能。