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