回到简体

This commit is contained in:
chai2010
2016-02-15 11:06:34 +08:00
parent 9e878f9944
commit 2b37b23285
177 changed files with 2354 additions and 2354 deletions

View File

@@ -1,8 +1,8 @@
## 1.8. 本章要
## 1.8. 本章要
本章Go言做了一些介Go言很多方面在有限的篇幅中法覆到。本節會把沒有講到的容也做一些簡單的介紹,這樣讀者在到完整的容之前,可以有個簡單的印象。
本章Go言做了一些介Go言很多方面在有限的篇幅中法覆到。本节会把没有讲到的容也做一些简单的介绍,这样读者在到完整的容之前,可以有个简单的印象。
**控流:** 在本章我們隻介紹了if控和for但是有提到switch多路選擇。這里是一個簡單的switch的例子
**控流:** 在本章我们只介绍了if控和for但是有提到switch多路选择。这里是一个简单的switch的例子
```go
switch coinflip() {
@@ -15,9 +15,9 @@ default:
}
```
在翻轉硬幣的時例子里的coinflip函數返迴幾種不同的果,每一case都會對應一個返迴結果,里需要Go語言併不需要式地在每一case後寫break言默認執行完case後的邏輯語句會自動退出。然了,如果你想要相鄰的幾個case都行同一邏輯的話,需要自己式地上一fallthrough語句來覆蓋這種默認行爲。不fallthrough句在一般的程序中很少用到。
在翻转硬币的时例子里的coinflip函数返回几种不同的果,每一case都会对应一个返回结果,里需要Go语言并不需要式地在每一case后写break言默认执行完case后的逻辑语句会自动退出。然了,如果你想要相邻的几个case都行同一逻辑的话,需要自己式地上一fallthrough语句来覆盖这种默认行为。不fallthrough句在一般的程序中很少用到。
Go言里的switch可以不操作象(譯註switch不操作對象時默認用true值代替後將每個case的表式和true值行比);可以直接列多種條件,像其它言里面的多if else一,下面是一例子:
Go言里的switch可以不操作象(译注switch不操作对象时默认用true值代替后将每个case的表式和true值行比);可以直接列多种条件,像其它言里面的多if else一,下面是一例子:
```go
func Signum(x int) int {
@@ -32,13 +32,13 @@ func Signum(x int) int {
}
```
這種形式叫做tag switch(tagless switch)和switch true是等的。
这种形式叫做tag switch(tagless switch)和switch true是等的。
像for和if控製語句一switch也可以跟一個簡短的變量聲明,一自增表式、賦值語句,或者一個函數調用(譯註:比其它語言豐富)。
像for和if控制语句一switch也可以跟一个简短的变量声明,一自增表式、赋值语句,或者一个函数调用(译注:比其它语言丰富)。
break和continue語句會改變控製流。和其它言中的break和continue一break會中斷當前的循環,併開始執行循環之後的內而continue中跳過當前循環,併開始執行下一次循環。這兩個語句除了可以控for循環,還可以用來控製switch和select句(之後會講到)在1.3中我看到continue會跳過內層的循,如果我想跳的是更外的循環的話,我可以在相的位置加上label這樣break和continue就可以根據我們的想法continue和break任意循環。這看起甚至有像goto句的作用了。然,一般程序也不用到這種操作。這兩種行爲更多地被用到器生成的代中。
break和continue语句会改变控制流。和其它言中的break和continue一break会中断当前的循环,并开始执行循环之后的内而continue中跳过当前循环,并开始执行下一次循环。这两个语句除了可以控for循环,还可以用来控制switch和select句(之后会讲到)在1.3中我看到continue会跳过内层的循,如果我想跳的是更外的循环的话,我可以在相的位置加上label这样break和continue就可以根据我们的想法continue和break任意循环。这看起甚至有像goto句的作用了。然,一般程序也不用到这种操作。这两种行为更多地被用到器生成的代中。
**命名型:** 類型聲明使得我可以很方便地給一個特殊型一名字。因struct類型聲明通常非常地,所以我們總要給這種struct取一名字。本章中就有這樣一個例子,二維點類型:
**命名型:** 类型声明使得我可以很方便地给一个特殊型一名字。因struct类型声明通常非常地,所以我们总要给这种struct取一名字。本章中就有这样一个例子,二维点类型:
```go
type Point struct {
@@ -47,15 +47,15 @@ type Point struct {
var p Point
```
類型聲明和命名類型會在第二章中介
类型声明和命名类型会在第二章中介
**指** Go言提供了指。指是一直接存儲了變量的存地址的數據類型。在其它言中比如C言,指操作是完全不受束的。在另外一些言中,指一般被處理爲“引用”,除了到處傳遞這些指之外,不能對這些指做太多事情。Go言在這兩種范圍中取了一平衡。指是可見的內存地址,&操作符可以返迴一個變量的存地址,且*操作符可以取指指向的變量內但是在Go言里有指針運也就是不能像c言里可以對指針進行加或操作。我們會在2.3.2中進行詳細介紹
**指** Go言提供了指。指是一直接存储了变量的存地址的数据类型。在其它言中比如C言,指操作是完全不受束的。在另外一些言中,指一般被处理为“引用”,除了到处传递这些指之外,不能对这些指做太多事情。Go言在这两种范围中取了一平衡。指是可见的内存地址,&操作符可以返回一个变量的存地址,且*操作符可以取指指向的变量内但是在Go言里有指针运也就是不能像c言里可以对指针进行加或操作。我们会在2.3.2中进行详细介绍
**方法和接口:** 方法是和命名類型關聯的一類函數。Go言里比特殊的是方法可以被關聯到任意一命名型。在第六章我們會詳細地講方法。接口是一抽象型,這種類型可以讓我們以同的方式來處理不同的固有型,不用心它的具體實現,而需要關註它們提供的方法。第七章中會詳細説明這些內容。
**方法和接口:** 方法是和命名类型关联的一类函数。Go言里比特殊的是方法可以被关联到任意一命名型。在第六章我们会详细地讲方法。接口是一抽象型,这种类型可以让我们以同的方式来处理不同的固有型,不用心它的具体实现,而需要关注它们提供的方法。第七章中会详细说明这些内容。
**包packages** Go言提供了一些很好用的package併且這些package是可以展的。Go言社區已經創造併且分享了很多很多。所以Go語言編程大多數情況下就是用已有的package來寫我們自己的代。通過這本書,我們會講解一些重要的標準庫內的package但是是有很多限篇幅有去明,因爲我們沒法在這樣的厚度的里去做一部代大全。
**包packages** Go言提供了一些很好用的package并且这些package是可以展的。Go言社区已经创造并且分享了很多很多。所以Go语言编程大多数情况下就是用已有的package来写我们自己的代。通过这本书,我们会讲解一些重要的标准库内的package但是是有很多限篇幅有去明,因为我们没法在这样的厚度的里去做一部代大全。
在你開始寫一個新程序之前,最好先去檢査一下是不是已有了成的可以助你更高效地完成件事情。你可以在 https://golang.org/pkg 和 https://godoc.org 中找到標準庫和社區寫的package。godoc這個工具可以你直接在本地命令行閲讀標準庫的文。比如下面這個例子。
在你开始写一个新程序之前,最好先去检查一下是不是已有了成的可以助你更高效地完成件事情。你可以在 https://golang.org/pkg 和 https://godoc.org 中找到标准库和社区写的package。godoc这个工具可以你直接在本地命令行阅读标准库的文。比如下面这个例子。
```
$ go doc http.ListenAndServe
@@ -66,7 +66,7 @@ func ListenAndServe(addr string, handler Handler) error
...
```
**註釋**之前已提到了在源文件的開頭寫的註釋是這個源文件的文。在每一個函數之前寫一個説明函數行爲的註釋也是一個好習慣。這些慣例很重要,因爲這些內容會被像godoc這樣的工具檢測到,且在行命令時顯示這些註釋。具可以考10.7.4。
**注释**之前已提到了在源文件的开头写的注释是这个源文件的文。在每一个函数之前写一个说明函数行为的注释也是一个好习惯。这些惯例很重要,因为这些内容会被像godoc这样的工具检测到,且在行命令时显示这些注释。具可以考10.7.4。
多行註釋可以用 `/* ... */` 包裹,和其它大多數語言一。在文件一開頭的註釋一般都是這種形式,或者一大段的解性的註釋文字也會被這符號包住,避免每一行都需要加//。在註釋中//和/*是沒什麽意義的,所以不要在註釋中再嵌入註釋
多行注释可以用 `/* ... */` 包裹,和其它大多数语言一。在文件一开头的注释一般都是这种形式,或者一大段的解性的注释文字也会被这符号包住,避免每一行都需要加//。在注释中//和/*是没什么意义的,所以不要在注释中再嵌入注释