Fixes #223
pull/1/head
chai2010 2016-01-21 10:56:41 +08:00
parent 44923a24eb
commit fd20d3df27
3 changed files with 3 additions and 3 deletions

View File

@ -10,7 +10,7 @@ Slice切片代表變長的序列序列中每個元素都有相同的類
months := [...]string{1: "January", /* ... */, 12: "December"} months := [...]string{1: "January", /* ... */, 12: "December"}
``` ```
因此一月份是months[1]十二月份是months[12]。通常數組的第一個元素從索引0開始但是月份一般是從1開始的因此我們聲明數組時直接第0個元素第0個元素會被自動初始化爲空字符串。 因此一月份是months[1]十二月份是months[12]。通常數組的第一個元素從索引0開始但是月份一般是從1開始的因此我們聲明數組時直接跳過第0個元素第0個元素會被自動初始化爲空字符串。
slice的切片操作s[i:j]其中0 ≤ i≤ j≤ cap(s)用於創建一個新的slice引用s的從第i個元素開始到第j-1個元素的子序列。新的slice將隻有j-i個元素。如果i位置的索引被省略的話將使用0代替如果j位置的索引被省略的話將使用len(s)代替。因此months[1:13]切片操作將引用全部有效的月份和months[1:]操作等價months[:]切片操作則是引用整個數組。讓我們分别定義表示第二季度和北方夏天月份的slice它們有重疊部分 slice的切片操作s[i:j]其中0 ≤ i≤ j≤ cap(s)用於創建一個新的slice引用s的從第i個元素開始到第j-1個元素的子序列。新的slice將隻有j-i個元素。如果i位置的索引被省略的話將使用0代替如果j位置的索引被省略的話將使用len(s)代替。因此months[1:13]切片操作將引用全部有效的月份和months[1:]操作等價months[:]切片操作則是引用整個數組。讓我們分别定義表示第二季度和北方夏天月份的slice它們有重疊部分

View File

@ -8,7 +8,7 @@ ch = make(chan string, 3)
![](../images/ch8-02.png) ![](../images/ch8-02.png)
向緩存Channel的發送操作就是向內部緩存隊列的尾部插入原因接收操作則是從隊列的頭部刪除元素。如果內部緩存隊列是滿的那麽發送操作將阻塞直到因另一個goroutine執行接收操作而釋放了新的隊列空間。相反如果channel是空的接收操作將阻塞直到有另一個goroutine執行發送操作而向隊列插入元素。 向緩存Channel的發送操作就是向內部緩存隊列的尾部插入元素接收操作則是從隊列的頭部刪除元素。如果內部緩存隊列是滿的那麽發送操作將阻塞直到因另一個goroutine執行接收操作而釋放了新的隊列空間。相反如果channel是空的接收操作將阻塞直到有另一個goroutine執行發送操作而向隊列插入元素。
我們可以在無阻塞的情況下連續向新創建的channel發送三個值 我們可以在無阻塞的情況下連續向新創建的channel發送三個值

View File

@ -8,7 +8,7 @@
ch := make(chan int) // ch has type 'chan int' ch := make(chan int) // ch has type 'chan int'
``` ```
和map類似channel也一個對應make創建的底層數據結構的引用。當我嗎複製一個channel或用於函數參數傳遞時我嗎隻是拷貝了一個channel引用因此調用者何被調用者將引用同一個channel對象。和其它的引用類型一樣channel的零值也是nil。 和map類似channel也一個對應make創建的底層數據結構的引用。當我們複製一個channel或用於函數參數傳遞時我們隻是拷貝了一個channel引用因此調用者何被調用者將引用同一個channel對象。和其它的引用類型一樣channel的零值也是nil。
兩個相同類型的channel可以使用==運算符比較。如果兩個channel引用的是相通的對象那麽比較的結果爲眞。一個channel也可以和nil進行比較。 兩個相同類型的channel可以使用==運算符比較。如果兩個channel引用的是相通的對象那麽比較的結果爲眞。一個channel也可以和nil進行比較。