mirror of
https://github.com/unknwon/the-way-to-go_ZH_CN.git
synced 2025-08-12 06:19:44 +08:00
Merge pull request #230 from kigawas/master
Fix typo and polish some words
This commit is contained in:
@@ -36,7 +36,7 @@ Go 语言中另一个非常重要的特性就是它的构建速度(编译和
|
||||
|
||||
依赖管理是现今软件开发的一个重要组成部分,但是 C 语言中“头文件”的概念却导致越来越多因为依赖关系而使得构建一个大型的项目需要长达几个小时的时间。人们越来越需要一门具有严格的、简洁的依赖关系分析系统从而能够快速编译的编程语言。这正是 Go 语言采用包模型的根本原因,这个模型通过严格的依赖关系检查机制来加快程序构建的速度,提供了非常好的可量测性。
|
||||
|
||||
整个 Go 语言标准库的编译时间一般都在 20 秒以内,其它的常规项目也只需要半秒钟的时间来完成编译工作。这种闪电般的编译速度甚至比编译 C 语言或者 Fortran 更加快,使得编译这一环节不再成为在软件开发中困扰开发人员的问题。在这之前,动态语言将快速编译作为自身的一大亮点,像 C++ 那样的静态语言一般都有非常漫长的编译和链接工作。而同样作为静态语言的 Go 语言,通过自身优良的构建机制,成功地了去除了这个弊端,使得程序的构建过程变得微不足道,拥有了像脚本语言和动态语言那样的高效开发的能力。
|
||||
整个 Go 语言标准库的编译时间一般都在 20 秒以内,其它的常规项目也只需要半秒钟的时间来完成编译工作。这种闪电般的编译速度甚至比编译 C 语言或者 Fortran 更加快,使得编译这一环节不再成为在软件开发中困扰开发人员的问题。在这之前,动态语言将快速编译作为自身的一大亮点,像 C++ 那样的静态语言一般都有非常漫长的编译和链接工作。而同样作为静态语言的 Go 语言,通过自身优良的构建机制,成功地去除了这个弊端,使得程序的构建过程变得微不足道,拥有了像脚本语言和动态语言那样的高效开发的能力。
|
||||
|
||||
另外,Go 语言在执行速度方面也可以与 C/C++ 相提并论。
|
||||
|
||||
@@ -72,7 +72,7 @@ Go 语言从本质上(程序和结构方面)来实现并发编程。
|
||||
|
||||
因为 Go 语言没有类和继承的概念,所以它和 Java 或 C++ 看起来并不相同。但是它通过接口(interface)的概念来实现多态性。Go 语言有一个清晰易懂的轻量级类型系统,在类型之间也没有层级之说。因此可以说这是一门混合型的语言。
|
||||
|
||||
在传统的面向对象语言中,使用面向对象编程技术显得非常的臃肿,它们总是通过复杂的模式来构建庞大的类型层级,这违背了编程语言应该提升生产力的宗旨。
|
||||
在传统的面向对象语言中,使用面向对象编程技术显得非常臃肿,它们总是通过复杂的模式来构建庞大的类型层级,这违背了编程语言应该提升生产力的宗旨。
|
||||
|
||||
函数是 Go 语言中的基本构件,它们的使用方法非常灵活。在第六章,我们会看到 Go 语言在函数式编程方面的基本概念。
|
||||
|
||||
|
@@ -12,15 +12,15 @@ Go 对于代码的缩进层级方面使用 tab 还是空格并没有强制规定
|
||||
|
||||
实例:
|
||||
|
||||
gofmt -r “(a) -> a” –w *.go
|
||||
gofmt -r '(a) -> a' –w *.go
|
||||
|
||||
上面的代码会将源文件中没有意义的括号去掉。
|
||||
|
||||
gofmt -r “a[n:len(a)] -> a[n:]” –w *.go
|
||||
gofmt -r 'a[n:len(a)] -> a[n:]' –w *.go
|
||||
|
||||
上面的代码会将源文件中多余的 `len(a)` 去掉。( **译者注:了解切片(slice)之后就明白这为什么是多余的了** )
|
||||
|
||||
gofmt –r ‘A.Func1(a,b) -> A.Func2(b,a)’ –w *.go
|
||||
gofmt –r 'A.Func1(a,b) -> A.Func2(b,a)' –w *.go
|
||||
|
||||
上面的代码会将源文件中符合条件的函数的参数调换位置。
|
||||
|
||||
|
@@ -1,6 +1,6 @@
|
||||
# 4.3 常量
|
||||
|
||||
常量使用关键字 const 定义,用于存储不会改变的数据。
|
||||
常量使用关键字 `const` 定义,用于存储不会改变的数据。
|
||||
|
||||
存储在常量中的数据类型只可以是布尔型、数字型(整数型、浮点型和复数)和字符串型。
|
||||
|
||||
@@ -46,7 +46,7 @@ const hardEight = (1 << 100) >> 97
|
||||
不过需要注意的是,当常量赋值给一个精度过小的数字型变量时,可能会因为无法正确表达常量所代表的数值而导致溢出,这会在编译期间就引发错误。另外,常量也允许使用并行赋值的形式:
|
||||
|
||||
```go
|
||||
const beef, two, c = “meat”, 2, “veg”
|
||||
const beef, two, c = "eat", 2, "veg"
|
||||
const Monday, Tuesday, Wednesday, Thursday, Friday, Saturday = 1, 2, 3, 4, 5, 6
|
||||
const (
|
||||
Monday, Tuesday, Wednesday = 1, 2, 3
|
||||
|
Reference in New Issue
Block a user