Go语言简单入门
文章目录
- Go语言简单入门
- 一、说明
- 二、先决条件
- 三、编写代码
- 四、使用外部包,调用命令
一、说明
本文简单的指导,将完成下面事情:
- 安装GO(如果还没有安装);
- 写一个简单的“Hello,World”代码;
- 使用Go命令,运行你的代码;
- 使用Go的包发现工具,查找你在代码中能使用的包;
- 调用一个外部模块的函数;
二、先决条件
- 有一些写代码的经历;
- 有一个编写代码的工具;
任何的文本编辑器都是可以的。绝大多数的编译器对Go的支持都是友好的。最流行的编译器VSCode(免费),GoLand(付费),Vim(免费) - 一个命令行终端;
三、编写代码
开始编写一个“Hello, World”的代码。
3.1 打开命令终端,并cd
进入你的主目录:
$ cd
$
3.2 为你第一个Go源代码创建一个“hello”目录:
$ mkdir hello
$ cd hello/
$
3.3 让你的代码能够依赖跟踪
当你的代码导入包含在其它模块中的包时,通过你自己的代码模块来管理这些依赖。这个模块被定义在go.mod
文件中,以便于跟踪提供这些包的模块。go.mod
文件是保存在你的代码中,包含在你的源代码仓库中。
为了让你的代码通过go.mod
文件进行依赖跟踪,运行go mod init
命令,给它一个你的代码将放入的模块名字。这个名字就是模块的模块路径。
在实际的开发中,模块路径通过是你的代码存放的仓库地址。例如,模块路径可能在githu.com/mymodule
。如果你计划发布你的模块进让别人使用,那模块路径就必须是能通过Go工具下载的。
为了本文指导的目标,仅仅使用example/hello
。
$ cd
$ mkdir hello
$ cd hello/
$ go mod init example/hello
go: creating new go.mod: module example/hello
3.4 在你的编译器中,创建一个hello.go
文件,用于写代码
3.5 将下面的代码复制到hello.go
文件中,并保存文件
package main
import "fmt"
func main() {
fmt.Println("Hello, World!")
}
在这段代码中:
- 定义了一个"main"包(包是对函数进行分组的一种方式,它由同一目录中的所有文件组成);
- 导入流行的"fmt"包,它包含了格式化text,包含了打印控制台。那个包是一个标准的库包,在你安装Go的时候获得;
- 实现了一个main函数,并打印消息到控制台。当运行main包的时候,main函数默认会执行;
3.6 运行代码
$ go run .
Hello, World!
go run
命令是Go中很多命令中用于执行一些事情的一个。使用下面的命令得到一个命令列表:
go help
四、使用外部包,调用命令
当你需要让你的代码做一些事情,别人已经做实现了。你能查找拥有这个函数的包,使用在你的代码中。
4.1 让你打印的消息更有趣,使用一个外部模块的函数
- 在pkg.go.dev上搜索"quote";
- 定位到
rsc.io/quote
, 点击进入; - 在
Documentation
部分的Index
下面,标注了一列可以在代码中调用的函数; - 在页面的顶部,注意到"quote"是包含在"rsc.io/quote"模块中的;
你能使用pkg.go.dev站点查找已经发布的模块,它们包中的函数可以使用在代码中。
4.2 在你的代码中,导入rsc.io/quote
,并调用Go
函数
package main
import "fmt"
import "rsc.io/quote"
func main() {
// fmt.Println("Hello, World!")
fmt.Println(quote.Go())
fmt.Println(quote.Hello())
fmt.Println(quote.Glass())
fmt.Println(quote.Opt())
}
4.3 添加新模块
$ go mod tidy
go: finding module for package rsc.io/quote
go: found rsc.io/quote in rsc.io/quote v1.5.2
4.5 运行代码
$ go run .
Don't communicate by sharing memory, share memory by communicating.
当运行go mod tidy
命令的时候,它将定位并下载rsc.io/quote