文章目录
一、安装 golang
- 从官网下载安装包,安装,一直下一步
- 环境变量自动设置好了,不用自己添加
- 用
go version
测试安装是否成功,显示版本号就成功了E:\>go version go version go1.13.5 windows/amd64
二、新建项目
- 在任意路径下(除GOPATH以外)创建项目目录
mkdir hello #新建 hello 目录 cd hello #进入 hello 目录
- 新建 hello.go 文件,并填入以下代码
执行运行命令:package main import ( "fmt" ) func main() { fmt.Println("Hello, World!") }
输出 hello world!。表示项目创建成功。go run hello.go
三、引用 import
1. 引用第三方模块(module)
-
修改 hello.go 文件,引入第三方模块
package main import ( "fmt" + "rsc.io/quote" //红了没关系 ) func main() { fmt.Println("Hello, World!") + fmt.Println(quote.Go()) }
-
初始化 go modules
go mod init hello
会生成 go.mod 文件。
-
执行 run 或 build 命令,自动安装第三方模块(module)
go build -o hello.exe hello.go #构建,安装第三方模块 # 或者 go run hello.go #运行,安装第三方模块
-
安装第三方模块(module)失败,设置 goproxy 解决。
go env -w GOPROXY=https://mirrors.aliyun.com/goproxy/
2. 引用同包(package)内文件
- 一个文件夹内 最好存放 同一个 package 的代码文件。
- package 的名称最好与 文件夹名 相同。
- 同 package 名的代码文件可以互相调用各自声明的方法,不用引用,不区分方法名首字母大小写。
3. 引用内部包(package)
- hello 项目目录如下,新建 lib/lib1.go 文件
/ hello + |--/ lib + | |-- lib1.go |-- go.mod |-- hello.go
- 在 lib1.go 文件内,定义内部包,代码如下
package lib import "fmt" func SayGoodbye() { fmt.Printf("Goodbye!\n") }
- hello.go,引用内部 package
package main import ( "fmt" + "hello/lib" //引用内部包 + // lib "hello/lib" //别名引用, ) func main() { fmt.Println("Hello, World!") + lib.SayGoodbye() //调用内部包方法,只能调用首字母大写的方法 }
- 运行项目
go run hello.go
4. 引用外部开发中的模块(module)
- 修改 go.mod
module hello go 1.15 require rsc.io/quote v0.0.0-20190312145912-0406d7298882 // indirect + require another v0.0.0 + replace another v0.0.0 => ../another
- 修改 hello.go
package main import ( "fmt" + "another" //引用外部开发中的模块 ) func main() { fmt.Println("Hello, World!") + another.Another() //调用外部模块的方法,首字母大写的方法 }
- 执行 run 命令
go run hello.go
四、发布 go module
- 新建个 go modules 项目。
- 不要用 main 命名 package,用模块名命 package。
- 要暴露的 api 方法首字母大写。
- 发布到 github
五、安装 go 额外的版本
- 执行命令
go get golang.org/dl/go1.10.7 GOPATH/go1.10.7 download //下载 GOPATH/go1.10.7 version //验证