Fixes #204
This commit is contained in:
chai2010
2016-01-18 12:07:14 +08:00
parent 9666211cd7
commit e16eebfefa
4 changed files with 4 additions and 4 deletions

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 }