Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 8 additions & 0 deletions .idea/.gitignore

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

9 changes: 9 additions & 0 deletions .idea/How-To-Code-in-Go.iml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

15 changes: 15 additions & 0 deletions .idea/git_toolbox_prj.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

8 changes: 8 additions & 0 deletions .idea/modules.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

7 changes: 7 additions & 0 deletions .idea/vcs.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion content/zh/docs/05-Understanding_the_GOPATH.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@

想要了解更多关于设置 `$GOPATH` 变量的信息,可以参考 Go [文档](https://golang.org/doc/code.html#Workspaces)。

此外,[本系列教程]({{< relref "/docs/01-How_To_Install_Go_and_Set_Up_a_Local Programming_Environment_on_Ubuntu_18.04_DigitalOcean.md" >}}) 简单介绍了安装 Go 和设置 Go 开发环境的方法。
此外,[本系列教程](https://gocn.github.io/How-To-Code-in-Go/docs/01-How_To_Install_Go_and_Set_Up_a_Local Programming_Environment_on_Ubuntu_18.04_DigitalOcean) 简单介绍了安装 Go 和设置 Go 开发环境的方法。

## `$GOPATH` 不是 `$GOROOT`

Expand Down
4 changes: 2 additions & 2 deletions content/zh/docs/07-Understanding_Data_Types_in_Go.md
Original file line number Diff line number Diff line change
Expand Up @@ -343,7 +343,7 @@ output
Say "hello" to Go!
```

你几乎总会使用解释字符串,因为它们允许在其中使用转义字符。想要了解更多关于字符串使用的信息,请查看[Go 中使用字符串的简介]({{< relref "/docs/08-An_Introduction_to_Working_with_Strings_in_Go.md" >}})。
你几乎总会使用解释字符串,因为它们允许在其中使用转义字符。想要了解更多关于字符串使用的信息,请查看[Go 中使用字符串的简介](https://gocn.github.io/How-To-Code-in-Go/docs/08-An_Introduction_to_Working_with_Strings_in_Go)。

### UTF-8 字符的字符串

Expand Down Expand Up @@ -586,4 +586,4 @@ blue

此时,你应该对 Go 中可用的一些主要数据类型有了更好的理解。当你使用 Go 语言开发编程项目时,这些数据类型中的每一种都将变得非常重要。

一旦掌握了 Go 中可用的数据类型,就可以学习[如何转换数据类型]({{< relref "/docs/12-How_To_Convert_Data_Types_in_Go.md" >}}),以便根据具体情况更改数据类型。
一旦掌握了 Go 中可用的数据类型,就可以学习[如何转换数据类型](https://gocn.github.io/How-To-Code-in-Go/docs/12-How_To_Convert_Data_Types_in_Go),以便根据具体情况更改数据类型。
Original file line number Diff line number Diff line change
Expand Up @@ -113,7 +113,7 @@ invalid operation: "Sammy" + 27 (mismatched types string and int)

## 在变量中保存字符串

**[变量]({{< relref "/docs/11-How_To_Use_Variables_and_Constants_in_Go.md" >}})**是在程序中可以用来保存数据的符号。你可以将它们看作是一个可以在其中填充一些数据或值的空盒子。字符串是数据,因此你可以使用它们来填充变量。将字符串声明为变量可以使得在 Go 程序中处理字符串更加容易。
**[变量](https://gocn.github.io/How-To-Code-in-Go/docs/11-How_To_Use_Variables_and_Constants_in_Go)**是在程序中可以用来保存数据的符号。你可以将它们看作是一个可以在其中填充一些数据或值的空盒子。字符串是数据,因此你可以使用它们来填充变量。将字符串声明为变量可以使得在 Go 程序中处理字符串更加容易。

要在变量中存储字符串,只需将一个变量分配给字符串。在下面的例子中,`s` 被声明为变量:

Expand Down
4 changes: 2 additions & 2 deletions content/zh/docs/09-How_To_Format_Strings_in_Go.md
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@

在组合反引号和双引号的方式中,我们可以控制字符串中引号和反引号的显示方式。

这里有个重点,在 Go 中使用反引号会创建一个 `raw` 字符串文字,而使用双引号会创建一个 `interpreted` 字符串文字。要了解有关差异的更多信息,请阅读 [Go 中处理字符串的介绍]({{< relref "/docs/08-An_Introduction_to_Working_with_Strings_in_Go.md" >}}) 教程。
这里有个重点,在 Go 中使用反引号会创建一个 `raw` 字符串文字,而使用双引号会创建一个 `interpreted` 字符串文字。要了解有关差异的更多信息,请阅读 [Go 中处理字符串的介绍](https://gocn.github.io/How-To-Code-in-Go/docs/08-An_Introduction_to_Working_with_Strings_in_Go) 教程。

## 转义字符

Expand Down Expand Up @@ -154,4 +154,4 @@ Sammy says,\"The balloon\'s color is red.\"

## 结论

本教程通过使用字符串介绍了几种在 Go 中格式化文本的方法。 通过使用转义字符或原始字符串等技术,我们能够确保程序的字符串正确的呈现在屏幕上,以便用户最终能够轻松阅读所有输出文本。
本教程通过使用字符串介绍了几种在 Go 中格式化文本的方法。 通过使用转义字符或原始字符串等技术,我们能够确保程序的字符串正确的呈现在屏幕上,以便用户最终能够轻松阅读所有输出文本。
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

## 介绍

Go 的 [`strings`](https://golang.org/pkg/strings/) 包有几个函数可用于 [string 数据类型]({{< relref "/docs/08-An_Introduction_to_Working_with_Strings_in_Go.md" >}})。这些函数可以轻松地修改和操作字符串。我们可以将函数视为对代码元素执行的操作。内置函数是那些在 Go 编程语言中定义并且可供我们随时使用的函数。
Go 的 [`strings`](https://golang.org/pkg/strings/) 包有几个函数可用于 [string 数据类型](https://gocn.github.io/How-To-Code-in-Go/docs/08-An_Introduction_to_Working_with_Strings_in_Go)。这些函数可以轻松地修改和操作字符串。我们可以将函数视为对代码元素执行的操作。内置函数是那些在 Go 编程语言中定义并且可供我们随时使用的函数。

在本教程中,我们将回顾几个可用于在 Go 中处理字符串的不同函数。

Expand Down Expand Up @@ -222,6 +222,6 @@ Sammy had a balloon.

本教程介绍了一些用于字符串数据类型的常见字符串包函数,你可以使用这些函数在 Go 程序中处理和操作字符串。

你可以在 [理解 Go 的数据类型]({{< relref "/docs/07-Understanding_Data_Types_in_Go.md" >}}) 中了解有关其他数据类型的更多信息,并在 [Go 中处理字符串的介绍]({{< relref "/docs/08-An_Introduction_to_Working_with_Strings_in_Go.md" >}}) 了解更多有关字符串的信息。
你可以在 [理解 Go 的数据类型](https://gocn.github.io/How-To-Code-in-Go/docs/07-Understanding_Data_Types_in_Go) 中了解有关其他数据类型的更多信息,并在 [Go 中处理字符串的介绍](https://gocn.github.io/How-To-Code-in-Go/docs/08-An_Introduction_to_Working_with_Strings_in_Go) 了解更多有关字符串的信息。

------
------
2 changes: 1 addition & 1 deletion content/zh/docs/12-How_To_Convert_Data_Types_in_Go.md
Original file line number Diff line number Diff line change
Expand Up @@ -468,4 +468,4 @@ my string

本 Go 教程主要演示了如何通过内置方法将几种重要的数据类型转换为其他数据类型。能够在 Go 中转换数据类型将允许你执行诸如接受用户输入和跨不同数字类型进行数学运算之类的事情。稍后,当你使用 Go 编写接受来自许多不同来源(如数据库和 API)的数据的程序时,你将使用这些转换方法来确保你可以对数据进行操作。你还可以通过将数据转换为更小的数据类型来优化存储。

如果你想深入分析 Go 中的数据类型,请查看我们的 [理解 Go 中的数据类型]({{< relref "/docs/07-Understanding_Data_Types_in_Go.md" >}}) 文章。
如果你想深入分析 Go 中的数据类型,请查看我们的 [理解 Go 中的数据类型](https://gocn.github.io/How-To-Code-in-Go/docs/07-Understanding_Data_Types_in_Go) 文章。
4 changes: 2 additions & 2 deletions content/zh/docs/13-How_To_Do_Math_in_Go_with_Operators.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@

在编程中进行数学运算是一项重要的技能,因为你会经常与数字打交道。尽管对数学的理解肯定能帮助你成为一个更好的程序员,但它不是一个先决条件。如果你没有数学背景,试着把数学看作是完成你想实现的目标的工具,并作为提高你的逻辑思维能力的一种方式。

我们将使用 Go 中最常用的两种数字[数据类型]({{< relref "/docs/07-Understanding_Data_Types_in_Go.md" >}}),整数和浮点数。
我们将使用 Go 中最常用的两种数字[数据类型](https://gocn.github.io/How-To-Code-in-Go/docs/07-Understanding_Data_Types_in_Go),整数和浮点数。

* [整数](https://gocn.github.io/How-To-Code-in-Go/docs/07-Understanding_Data_Types_in_Go/#%E6%95%B4%E6%95%B0)是可以是正数、负数或 0 的整数(...,`-1`,`0`,`1`,...)。
* [浮点数](https://gocn.github.io/How-To-Code-in-Go/docs/07-Understanding_Data_Types_in_Go/#%E6%B5%AE%E7%82%B9%E6%95%B0)是包含小数点的实数,如 `9.0` 或 `2.25` ...
Expand Down Expand Up @@ -442,4 +442,4 @@ y %= 3

## 总结

本教程涵盖了许多你将在整数和浮点数数据类型中使用的运算符。你可以在[理解 Go 的数据类型]({{< relref "/docs/07-Understanding_Data_Types_in_Go.md" >}})和[如何在 Go 中转换数据类型]({{< relref "/docs/12-How_To_Convert_Data_Types_in_Go.md" >}})中了解更多关于不同的数据类型。
本教程涵盖了许多你将在整数和浮点数数据类型中使用的运算符。你可以在[理解 Go 的数据类型](https://gocn.github.io/How-To-Code-in-Go/docs/07-Understanding_Data_Types_in_Go)和[如何在 Go 中转换数据类型](https://gocn.github.io/How-To-Code-in-Go/docs/12-How_To_Convert_Data_Types_in_Go)中了解更多关于不同的数据类型。
4 changes: 2 additions & 2 deletions content/zh/docs/16-Understanding_Arrays_and_Slices_in_Go.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@

## 定义一个数组

数组的定义是在大括号 `[]` 中声明数组的大小,然后是各元素的数据类型。Go 中的数组必须使其所有元素都是相同的[数据类型]({{< relref "/docs/07-Understanding_Data_Types_in_Go.md" >}})。在数据类型之后,你可以用大括号 `{ }` 来声明数组元素的单个值。
数组的定义是在大括号 `[]` 中声明数组的大小,然后是各元素的数据类型。Go 中的数组必须使其所有元素都是相同的[数据类型](https://gocn.github.io/How-To-Code-in-Go/docs/07-Understanding_Data_Types_in_Go)。在数据类型之后,你可以用大括号 `{ }` 来声明数组元素的单个值。

下面是声明一个数组的一般模式:

Expand Down Expand Up @@ -552,4 +552,4 @@ seaNames[1][3] = "Jamie"

在本教程中,你学到了在 Go 中使用数组和切片的基础。通过多个练习来证明数组的长度是固定的,而切片的长度是可变的,并发现这种差异是如何影响这些数据结构的用途场景。

要继续学习 Go 中的数据结构,请查看我们的文章[理解 Go 中的 Map]({{< relref "/docs/15-Understanding_Maps_in_Go.md" >}}),或探索整个[如何在 Go 中编码](https://gocn.github.io/How-To-Code-in-Go/)系列。
要继续学习 Go 中的数据结构,请查看我们的文章[理解 Go 中的 Map](https://gocn.github.io/How-To-Code-in-Go/docs/15-Understanding_Maps_in_Go),或探索整个[如何在 Go 中编码](https://gocn.github.io/How-To-Code-in-Go/)系列。
4 changes: 2 additions & 2 deletions content/zh/docs/19-Handling_Panics_in_Go _DigitalOcean.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,9 @@

## 介绍

程序遇到的错误分为两个广泛的类别:程序员已经预料到的错误和程序员没有预料到的错误。我们在前两篇关于 [错误处理]({{< relref "/docs/12-How_To_Convert_Data_Types_in_Go.md" >}}) 的文章中介绍过的 `error` 接口主要用于处理我们在编写 Go 程序时可能遇到的错误。`error` 接口甚至允许我们去确认在调用一个函数时发生罕见性错误的可能性,因此我们可以在这些情况下进行适当的响应。
程序遇到的错误分为两个广泛的类别:程序员已经预料到的错误和程序员没有预料到的错误。我们在前两篇关于 [错误处理](https://gocn.github.io/How-To-Code-in-Go/docs/12-How_To_Convert_Data_Types_in_Go) 的文章中介绍过的 `error` 接口主要用于处理我们在编写 Go 程序时可能遇到的错误。`error` 接口甚至允许我们去确认在调用一个函数时发生罕见性错误的可能性,因此我们可以在这些情况下进行适当的响应。

Panics 属于第二类错误,这些错误是程序员意料之外的。这些意料之外的错误导致一个 GO 程序自发终止并退出运行。常见的错误通常是造成 panic 的原因。在本教程中,我们将研究哪些常见操作可以引起 panic ,我们还将看到避免这些 panic 的方法。我们还将使用 [`defer`]({{< relref "/docs/29-Understanding_defer_in_Go.md" >}}) 语句与 `recover` 函数一起捕获 panic,以免 panic 有机会意外终止我们正在运行的 GO 程序。
Panics 属于第二类错误,这些错误是程序员意料之外的。这些意料之外的错误导致一个 GO 程序自发终止并退出运行。常见的错误通常是造成 panic 的原因。在本教程中,我们将研究哪些常见操作可以引起 panic ,我们还将看到避免这些 panic 的方法。我们还将使用 [`defer`](https://gocn.github.io/How-To-Code-in-Go/docs/29-Understanding_defer_in_Go) 语句与 `recover` 函数一起捕获 panic,以免 panic 有机会意外终止我们正在运行的 GO 程序。

## 了解 panics

Expand Down
4 changes: 2 additions & 2 deletions content/zh/docs/20-Importing_Packages_in_Go_DigitalOcean.md
Original file line number Diff line number Diff line change
Expand Up @@ -123,7 +123,7 @@ GO 工具链带有 `go get` 命令。此命令使你可以将第三方软件包
go get github.com/gobuffalo/flect
```

在这种情况下,使用 `go get` 工具将在 GitHub 上找到软件包,并将其安装到你的 [`$Gopath`]({{< relref "/docs/05-Understanding_the_GOPATH.md" >}}) 中。
在这种情况下,使用 `go get` 工具将在 GitHub 上找到软件包,并将其安装到你的 [`$Gopath`](https://gocn.github.io/How-To-Code-in-Go/docs/05-Understanding_the_GOPATH) 中。

对于此示例,代码将安装在此目录中:

Expand Down Expand Up @@ -223,4 +223,4 @@ import (

当我们导入软件包时,我们可以调用未内置的功能。有些软件包是随着 GO 安装的标准库的一部分,有些软件包将通过 `go get` 来安装。

使用软件包可以使我们在利用现有代码时使程序更加健壮和强大。我们还可以为自己和其他程序员 [创建自己的软件包]({{< relref "/docs/21-How_To_Write_Packages_in_Go.md" >}}),以便将来使用。
使用软件包可以使我们在利用现有代码时使程序更加健壮和强大。我们还可以为自己和其他程序员 [创建自己的软件包](https://gocn.github.io/How-To-Code-in-Go/docs/21-How_To_Write_Packages_in_Go),以便将来使用。
8 changes: 4 additions & 4 deletions content/zh/docs/21-How_To_Write_Packages_in_Go.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,12 +5,12 @@
本教程将指导你如何编写 Go 包,以便在其他编程文件中使用。
## 前提条件

- 按照[如何安装和设置 Go 的本地编程环境]({{< relref "/docs/01-How_To_Install_Go_and_Set_Up_a_Local Programming_Environment_on_Ubuntu_18.04_DigitalOcean.md" >}})系列教程中的一个教程设置 Go 编程环境。按照本地编程环境教程中的步骤5创建你的 Go 工作区。要遵循本文的例子和命名规则,请阅读第一节「编写和导入软件包」。
- 为了加深你对 GOPATH 的了解,请阅读文章[了解 GOPATH]({{< relref "/docs/05-Understanding_the_GOPATH.md" >}})。
- 按照[如何安装和设置 Go 的本地编程环境](https://gocn.github.io/How-To-Code-in-Go/docs/01-How_To_Install_Go_and_Set_Up_a_Local Programming_Environment_on_Ubuntu_18.04_DigitalOcean)系列教程中的一个教程设置 Go 编程环境。按照本地编程环境教程中的步骤5创建你的 Go 工作区。要遵循本文的例子和命名规则,请阅读第一节「编写和导入软件包」。
- 为了加深你对 GOPATH 的了解,请阅读文章[了解 GOPATH](https://gocn.github.io/How-To-Code-in-Go/docs/05-Understanding_the_GOPATH)。

## 编写和导入软件包

编写包就像编写任何其他 Go 文件一样,包可以包含函数、[类型]({{< relref "/docs/07-Understanding_Data_Types_in_Go.md" >}})和[变量](https://gocn.github.io/How-To-Code-in-Go/docs/11-How_To_Use_Variables_and_Constants_in_Go/#%E7%90%86%E8%A7%A3%E5%8F%98%E9%87%8F)的定义,然后可以在其他 Go 程序中使用。
编写包就像编写任何其他 Go 文件一样,包可以包含函数、[类型](https://gocn.github.io/How-To-Code-in-Go/docs/07-Understanding_Data_Types_in_Go)和[变量](https://gocn.github.io/How-To-Code-in-Go/docs/11-How_To_Use_Variables_and_Constants_in_Go/#%E7%90%86%E8%A7%A3%E5%8F%98%E9%87%8F)的定义,然后可以在其他 Go 程序中使用。

在我们创建一个新的包之前,我们需要进入我们的 Go 工作区。这通常是在我们的`gopath`下。对于这个例子,本教程中我们将把包称为`greet`。为了做到这一点,在我们的项目空间下的`gopath`中创建了一个名为`greet`的目录。当使用 Github 作为代码库,组织名称为`gopherguides`,想在此组织下创建`greet`包,那么我们的目录会是这样的:

Expand Down Expand Up @@ -379,4 +379,4 @@ The octopus's name is "" and is the color .

## 总结

编写 Go 包与编写其他 Go 文件是一样的,但把它放在另一个目录中可以隔离代码,以便在其他地方重复使用。本教程介绍了如何在包中编写定义,演示了如何在另一个 Go 文件中使用这些定义,并解释了控制包是否可访问的选项。
编写 Go 包与编写其他 Go 文件是一样的,但把它放在另一个目录中可以隔离代码,以便在其他地方重复使用。本教程介绍了如何在包中编写定义,演示了如何在另一个 Go 文件中使用这些定义,并解释了控制包是否可访问的选项。
Loading