Table of Contents  目录

go

这是介绍Go语言基本特性的教程的第一部分。如果你刚开始使用Go,务必看一下教程:开始使用Go,它介绍了go命令,Go模块,和特别简单的Go代码。

In this tutorial you'll create two modules. The first is a library which is intended to be imported by other libraries or applications. The second is a caller application which will use the first.

在本教程中你将创建两个模块。第一个模块是个类库,供其它类库或应用导入。第二个模块是个调用者应用,它将使用第一个模块。

This tutorial's sequence includes seven brief topics that each illustrate a different part of the language.  本教程包括七个简短主题,每个主题阐述语言的不同部分。

  1. Create a module -- Write a small module with functions you can call from another module.  创建一个模块——编写一个小模块,里面含有你可以在其它模块中调用的函数。
  2. Call your code from another module -- Import and use your new module.  在其它模块中调用你的代码——导入并使用你的新模块。
  3. Return and handle an error -- Add simple error handling.  返回并处理错误——添加简单错误处理。
  4. Return a random greeting -- Handle data in slices (Go's dynamically-sized arrays).  返回一个随机问候语——处理切片中的数据(Go的动态数组)。
  5. Return greetings for multiple people -- Store key/value pairs in a map.  为多个人返回问候语——在映射中存储键/值对。
  6. Add a test -- Use Go's built-in unit testing features to test your code.  增加测试——使用Go的内置单元测试特性来测试你的代码。
  7. Compile and install the application -- Compile and install your code locally.  编译并安装应用——在本地编译并安装你的代码

Prerequisites  前提条件

  • Some programming experience. The code here is pretty simple, but it helps to know something about functions, loops, and arrays.  一些编程经验。这里的代码是极其简单的,但了解一些函数,循环,和数组相关知识,是有帮助的。
  • A tool to edit your code. Any text editor you have will work fine. Most text editors have good support for Go. The most popular are VSCode (free), GoLand (paid), and Vim (free).  一款编辑代码的工具。任何你可接受的文本编辑器。许多文本编辑器为Go提供了良好的支持。非常受欢迎的有VSCode(免费),GoLand(付费),和Vim(免费)。
  • A command terminal. Go works well using any terminal on Linux and Mac, and on PowerShell or cmd in Windows.  一个命令终端。使用Linux和Max上的任何终端和Windows上的PowerShell或cmd,Go都工作的很好。

Start a module that others can use   开始一个其他人可使用的模块

Start by creating a Go module. In a module, you collect one or more related packages for a discrete and useful set of functions. For example, you might create a module with packages that have functions for doing financial analysis so that others writing financial applications can use your work. For more about developing modules, see Developing and publishing modules.

创建一个Go模块作为开始,你将分散且有用的一系列函数收集到一个或多个包里。例如,你可能会创建一个具有财务分析功能的模块,其他编写财务分析应用的人可以使用你的成果。更多开发模块相关信息,请看开发并发布模块。

Go code is grouped into packages, and packages are grouped into modules. Your module specifies dependencies needed to run your code, including the Go version and the set of other modules it requires.

Go代码被分组到包中,且包被分组模块中。模块指定代码需要的依赖,包括Go版本和该模块需要的其它模块。

As you add or improve functionality in your module, you publish new versions of the module. Developers writing code that calls functions in your module can import the module's updated packages and test with the new version before putting it into production use.

在你添加或改进模块中的功能,你发布模块的新版本。开发者编写调用你模块中函数的代码,可以导入模块的更新包并在投入生产前使用新版本测试。

cd
cd %HOMEPATH%
mkdir greetings
cd greetings
$ go mod init example.com/greetings
go: creating new go.mod: module example.com/greetings
package greetings

import "fmt"

// Hello returns a greeting for the named person.
func Hello(name string) string {
    // Return a greeting that embeds the name in a message.
    message := fmt.Sprintf("Hi, %v. Welcome!", name)
    return message
}
var message string
message = fmt.Sprintf("Hi, %v. Welcome!", name)

In the next step, you'll call this function from another module.

下一步,你将从另一个模块调用此函数。