mirror of
https://github.com/unknwon/the-way-to-go_ZH_CN.git
synced 2025-08-12 05:11:49 +08:00
04.1.md
This commit is contained in:
@@ -31,6 +31,8 @@ Golang中国:[golang.tc](http://www.golang.tc/)
|
|||||||
|
|
||||||
##致谢
|
##致谢
|
||||||
- 本书原作者:Ivo Balbaert
|
- 本书原作者:Ivo Balbaert
|
||||||
|
- 协助翻译:
|
||||||
|
- [zhanming](https://github.com/zhanming)
|
||||||
|
|
||||||
##授权许可
|
##授权许可
|
||||||
除特别声明外,本书中的内容使用 [CC BY-SA 3.0 License](http://creativecommons.org/licenses/by-sa/3.0/)(创作共用 署名-相同方式共享0 许可协议)授权,代码遵循 [BSD 3-Clause License](https://github.com/astaxie/build-web-application-with-golang/blob/master/LICENSE.md)(3 项条款的 BSD 许可协议)。
|
除特别声明外,本书中的内容使用 [CC BY-SA 3.0 License](http://creativecommons.org/licenses/by-sa/3.0/)(创作共用 署名-相同方式共享0 许可协议)授权,代码遵循 [BSD 3-Clause License](https://github.com/astaxie/build-web-application-with-golang/blob/master/LICENSE.md)(3 项条款的 BSD 许可协议)。
|
||||||
|
@@ -1,21 +1,21 @@
|
|||||||
#4.1 文件名 - 关键字 - 标识符
|
#4.1 文件名、关键字与标识符
|
||||||
( ***译者注:由于 Go 语言版本更替,本节中的相关内容经原作者同意将被直接替换而不作另外说明*** )
|
( ***译者注:由于 Go 语言版本更替,本节中的相关内容经原作者同意将被直接替换而不作另外说明*** )
|
||||||
|
|
||||||
GO 源文件存储在以 .go 为后缀的文件里,这些文件名由小写字母组成,如 scanner.go 如果名称由多个部分组成,使用下划线 _ 进行分隔,如 scanner_test.go 文件名不能包含空格或其他特殊字符。
|
Go 的源文件以 `.go` 为后缀名存储在计算机中,这些文件名均由小写字母组成,如 `scanner.go` 。如果文件名由多个部分组成,则使用下划线 `_` 对它们进行分隔,如 `scanner_test.go` 。文件名不包含空格或其他特殊字符。
|
||||||
|
|
||||||
一个源文件包含的代码行,长度有没有固定限制。
|
一个源文件可以包含任意多行的代码,Go 本身没有对源文件的大小进行限制。
|
||||||
|
|
||||||
Go 代码中几乎所有的东西都有一个名称或标识符。Go 语言与C家族中的所有语言一样,是区分大小写的。有效的标识符是以字母(字母是属于 Unicode 编码, UTF-8 编码或 _ )开头的,然后由 0 个或多个字母或 Unicode 数字,如:X56,group1,_x23,i,өԑ12。
|
你会发现在 Go 代码中的几乎所有东西都有一个名称或标识符。另外,Go 语言也是区分大小写的,这与 C 家族中的其它语言相同。有效的标识符必须以字符(可以使用任何 UTF-8 编码的字符或 _ )开头,然后紧跟着 0 个或多个字符或 Unicode 数字,如:X56,group1,_x23,i,өԑ12。
|
||||||
|
|
||||||
以下是无效的标识符:
|
以下是无效的标识符:
|
||||||
|
|
||||||
1ab(以数字开头),case( Go 语言的关键字),a+b(运算符是不允许的)
|
1ab(以数字开头),case( Go 语言的关键字),a+b(运算符是不允许的)
|
||||||
|
|
||||||
标识符 _ 是一个特殊的标识符,被叫做空白标识符(***译者注:垃圾桶标识符***)。它可以像其他标识符那样用于声明或变量赋值(任何类型都可以被分配给它),但它的值将被丢弃,所以它在下面的代码中不能再次被使用。
|
`_` 本身就是一个特殊的标识符,被称为空白标识符。它可以像其他标识符那样用于变量的声明或赋值(任何类型都可以赋值给它),但任何赋给这个标识符的值都将被抛弃,因此这些值不能在后续的代码中使用,也不可以使用这个这个标识符作为变量对其它变量的进行赋值或运算。
|
||||||
|
|
||||||
有时变量,类型或方法没有名称,因为它在那段代码中不是真正需要,有时这样做甚至增强了灵活性:这被称为匿名。
|
在编码过程中,你可能会遇到没有名称的变量、类型或方法,尽管这不是必须的,但有时候这样做可以极大地增强代码的灵活性,这些变量被统称为匿名变量。
|
||||||
|
|
||||||
下面是被用于 Go 语言代码中的 25 个关键字或保留字集合:
|
下面列举了 Go 代码中会使用到的 25 个关键字或保留字:
|
||||||
|
|
||||||
<table class="table table-bordered table-striped table-condensed">
|
<table class="table table-bordered table-striped table-condensed">
|
||||||
<tr>
|
<tr>
|
||||||
@@ -55,11 +55,9 @@ Go 代码中几乎所有的东西都有一个名称或标识符。Go 语言与C
|
|||||||
</tr>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
|
|
||||||
刻意保持这么少的关键字以简化代码解析,是编译过程中的第一步。
|
之所以刻意地将 Go 代码中的关键字保持的这么少,是为了简化在编译过程第一步中的代码解析。和其它语言一样,关键字不能够作标识符使用。
|
||||||
|
|
||||||
关键字不能用作标识符使用。
|
除了以上介绍的这些关键字,Go 语言还有 36 个预定义标识符,其中包含了基本类型的名称和一些基本的内置函数(第 6.5 节),它们的作用都将在接下来的章节中进行进一步地讲解。
|
||||||
|
|
||||||
除了这些关键字 Go 语言有一组共 36 个预声明的标识符:他们包含了基本的类型名字和一些基本的内置功能(参见 6.5 节),这些都将在接下来的章节中进一步解释:
|
|
||||||
|
|
||||||
<table class="table table-bordered table-striped table-condensed">
|
<table class="table table-bordered table-striped table-condensed">
|
||||||
<tr>
|
<tr>
|
||||||
@@ -108,17 +106,17 @@ Go 代码中几乎所有的东西都有一个名称或标识符。Go 语言与C
|
|||||||
</tr>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
|
|
||||||
程序包括关键字,常量,变量,运算符,类型和函数。
|
程序一般由关键字,常量,变量,运算符,类型和函数组成。
|
||||||
|
|
||||||
程序使用如下分隔符:括号`()`,中括号`[]`和大括号`{}`。
|
程序中可能会使用到这些分隔符:括号`()`,中括号`[]`和大括号`{}`。
|
||||||
|
|
||||||
程序使用如下标点符号。 `.` `,` `;` `:` and `…`。
|
程序中可能会使用到这些标点符号: `.` `,` `;` `:` 和 `…`。
|
||||||
|
|
||||||
程序的代码是结构化的。一个声明并不需要一个`;`结束(这在C语言家族是强迫使用的)。 Go编译器会自动在语句结束时插入分号。
|
程序的代码通过语句来实现结构化。每个语句不需要像 C 家族中的其它语言一样以分号 `;` 结尾,因为这些工作都将由 Go 编译器自动完成。
|
||||||
|
|
||||||
但是,如果多条语句写在一行(由于可读性原因是不鼓励这种做法的),他们必须使用`;`分开。
|
如果你打算将多个语句写在同一行,它们则必须使用 `;` 人为区分,但在实际开发中我们并不鼓励这种做法。
|
||||||
|
|
||||||
##链接
|
##链接
|
||||||
- [目录](directory.md)
|
- [目录](directory.md)
|
||||||
- 上一章:[与其他语言的相互作用](03.9.md)
|
- 上一部分:[与其它语言进行交互](03.9.md)
|
||||||
- 下一节:[基本结构和 Go 编程的要素](04.2.md)
|
- 下一节:[Go 程序的基本结构和要素](04.2.md)
|
||||||
|
@@ -17,6 +17,7 @@
|
|||||||
|
|
||||||
##第二部分:语言的核心结构与技术
|
##第二部分:语言的核心结构与技术
|
||||||
- 第4章:基本结构和基本数据类型
|
- 第4章:基本结构和基本数据类型
|
||||||
|
- 4.1 [文件名、关键字与标识符](04.1.md)
|
||||||
- 第5章:控制结构
|
- 第5章:控制结构
|
||||||
- 第6章:函数(function)
|
- 第6章:函数(function)
|
||||||
- 第7章:数组(array)与切片(slice)
|
- 第7章:数组(array)与切片(slice)
|
||||||
|
Reference in New Issue
Block a user