make loop

This commit is contained in:
chai2010
2015-12-26 20:05:30 +08:00
parent 82ec0c025d
commit e15e88dad7
74 changed files with 207 additions and 207 deletions

View File

@@ -1,6 +1,6 @@
### 2.4.1. 元組賦值
元組賦值是另一種形式的賦值語句,它允許同時更新多個變量的值。在賦值之前,賦值語句右邊的所有表達式將會先進行求值,然後再統一更新左邊對應變量的值。這對於處理有些同時現在元組賦值語句左右兩邊的變量很有幫助,例如我們可以這樣交換兩個變量的值:
元組賦值是另一種形式的賦值語句,它允許同時更新多個變量的值。在賦值之前,賦值語句右邊的所有表達式將會先進行求值,然後再統一更新左邊對應變量的值。這對於處理有些同時現在元組賦值語句左右兩邊的變量很有幫助,例如我們可以這樣交換兩個變量的值:
```Go
x, y = y, x
@@ -39,13 +39,13 @@ i, j, k = 2, 3, 5
但如果表達式太複雜的話,應該盡量避免過度使用元組賦值;因爲每個變量單獨賦值語句的寫法可讀性會更好。
有些表達式會産生多個值,比如調用一個有多個返迴值的函數。當這樣一個函數調用現在元組賦值右邊的表達式中時(譯註:右邊不能再有其它表達式),左邊變量的數目必鬚和右邊一致。
有些表達式會産生多個值,比如調用一個有多個返迴值的函數。當這樣一個函數調用現在元組賦值右邊的表達式中時(譯註:右邊不能再有其它表達式),左邊變量的數目必鬚和右邊一致。
```Go
f, err = os.Open("foo.txt") // function call returns two values
```
通常這類函數會用額外的返迴值來表達某種錯誤類型例如os.Open是用額外的返迴值返迴一個error類型的錯誤還有一些是用來返迴布爾值通常被稱爲ok。在稍後我們將看到的三個操作都是類似的用法。如果map査找§4.3、類型斷言§7.10或通道接收§8.4.2現在賦值語句的右邊,它們都可能會産生兩個結果,有一個額外的布爾結果表示操作是否成功:
通常這類函數會用額外的返迴值來表達某種錯誤類型例如os.Open是用額外的返迴值返迴一個error類型的錯誤還有一些是用來返迴布爾值通常被稱爲ok。在稍後我們將看到的三個操作都是類似的用法。如果map査找§4.3、類型斷言§7.10或通道接收§8.4.2現在賦值語句的右邊,它們都可能會産生兩個結果,有一個額外的布爾結果表示操作是否成功:
```Go
v, ok = m[key] // map lookup
@@ -53,7 +53,7 @@ v, ok = x.(T) // type assertion
v, ok = <-ch // channel receive
```
譯註map査找§4.3、類型斷言§7.10或通道接收§8.4.2現在賦值語句的右邊時併不一定是産生兩個結果也可能隻産生一個結果。對於值産生一個結果的情形map査找失敗時會返迴零值類型斷言失敗時會發送運行時panic異常通道接收失敗時會返迴零值阻塞不算是失敗。例如下面的例子
譯註map査找§4.3、類型斷言§7.10或通道接收§8.4.2現在賦值語句的右邊時併不一定是産生兩個結果也可能隻産生一個結果。對於值産生一個結果的情形map査找失敗時會返迴零值類型斷言失敗時會發送運行時panic異常通道接收失敗時會返迴零值阻塞不算是失敗。例如下面的例子
```Go
v = m[key] // map査找失敗時返迴零值