Fixes #204
pull/1/head
chai2010 2016-01-18 12:07:14 +08:00
parent 9666211cd7
commit e16eebfefa
4 changed files with 4 additions and 4 deletions

View File

@ -147,7 +147,7 @@ func main() {
fmt.Println(os.Args[1:])
```
這個輸出結果和前面的string.Join得到的結果很相似隻是被自動地放到了一個方括號里對slice調用Println函數都會被打印成這樣形式的結果。
這個輸出結果和前面的strings.Join得到的結果很相似隻是被自動地放到了一個方括號里對slice調用Println函數都會被打印成這樣形式的結果。
**練習 1.1** 脩改echo程序使其能夠打印os.Args[0]。

View File

@ -167,7 +167,7 @@ func main() {
}
```
ReadFile函數返迴一個byte的slice這個slice必須被轉換爲string之後才能夠用string.Split方法來進行處理。我們在3.5.4節中會更詳細地講解string和byte slice字節數組
ReadFile函數返迴一個byte的slice這個slice必須被轉換爲string之後才能夠用strings.Split方法來進行處理。我們在3.5.4節中會更詳細地講解string和byte slice字節數組
在更底層一些的地方bufio.Scannerioutil.ReadFile和ioutil.WriteFile使用的是*os.File的Read和Write方法不過一般程序員併不需要去直接了解到其底層實現細節在bufio和io/ioutil包中提供的方法已經足夠好用。

View File

@ -1,7 +1,7 @@
## 5.4. 錯誤
在Go中有一部分函數總是能成功的運行。比如string.Contains和strconv.FormatBool函數對各種可能的輸入都做了良好的處理使得運行時幾乎不會失敗除非遇到災難性的、不可預料的情況比如運行時的內存溢出。導致這種錯誤的原因很複雜難以處理從錯誤中恢複的可能性也很低。
在Go中有一部分函數總是能成功的運行。比如strings.Contains和strconv.FormatBool函數對各種可能的輸入都做了良好的處理使得運行時幾乎不會失敗除非遇到災難性的、不可預料的情況比如運行時的內存溢出。導致這種錯誤的原因很複雜難以處理從錯誤中恢複的可能性也很低。
還有一部分函數隻要輸入的參數滿足一定條件也能保證運行成功。比如time.Date函數該函數將年月日等參數構造成time.Time對象除非最後一個參數時區是nil。這種情況下會引發panic異常。panic是來自被調函數的信號表示發生了某個已知的bug。一個良好的程序永遠不應該發生panic異常。

View File

@ -35,7 +35,7 @@
但是函數值之間是不可比較的也不能用函數值作爲map的key。
函數值使得我們不僅僅可以通過數據來參數化函數亦可通過行爲。標準庫中包含許多這樣的例子。下面的代碼展示了如何使用這個技巧。string.Map對字符串中的每個字符調用add1函數併將每個add1函數的返迴值組成一個新的字符串返迴給調用者。
函數值使得我們不僅僅可以通過數據來參數化函數亦可通過行爲。標準庫中包含許多這樣的例子。下面的代碼展示了如何使用這個技巧。strings.Map對字符串中的每個字符調用add1函數併將每個add1函數的返迴值組成一個新的字符串返迴給調用者。
```Go
func add1(r rune) rune { return r + 1 }