mirror of
https://github.com/gopl-zh/gopl-zh.github.com.git
synced 2025-08-14 18:41:42 +00:00
make loop
This commit is contained in:
@@ -112,7 +112,7 @@ if f, err := os.Open(fname); err != nil {
|
||||
|
||||
但這不是Go推薦的做法, Go的習慣是在if中處理錯誤然後直接返迴, 這樣可以確保正常成功執行的語句不需要代碼縮進.
|
||||
|
||||
要特别註意短的變量聲明的作用域范圍, 考慮下面的程序, 它的目的是穫取當前的工作目録然後保存到一個包級的變量中. 這可以通過直接調用 os.Getwd 完成, 但是將這個從主邏輯中分離齣來可能會更好, 特别是在需要處理錯誤的時候. 函數 log.Fatalf 打印信息, 然後調用 os.Exit(1) 終止程序.
|
||||
要特别註意短的變量聲明的作用域范圍, 考慮下面的程序, 它的目的是穫取當前的工作目録然後保存到一個包級的變量中. 這可以通過直接調用 os.Getwd 完成, 但是將這個從主邏輯中分離出來可能會更好, 特别是在需要處理錯誤的時候. 函數 log.Fatalf 打印信息, 然後調用 os.Exit(1) 終止程序.
|
||||
|
||||
```Go
|
||||
var cwd string
|
||||
@@ -141,9 +141,9 @@ func init() {
|
||||
}
|
||||
```
|
||||
|
||||
全局的cwd變量依然是沒有被正確初始化的, 而且看似正常的日誌輸齣更是這個BUG更加隱晦.
|
||||
全局的cwd變量依然是沒有被正確初始化的, 而且看似正常的日誌輸出更是這個BUG更加隱晦.
|
||||
|
||||
有許多方式可以避免齣現類似潛在的問題. 最直接的是通過單獨聲明err變量, 來避免使用 `:=` 的簡短聲明方式:
|
||||
有許多方式可以避免出現類似潛在的問題. 最直接的是通過單獨聲明err變量, 來避免使用 `:=` 的簡短聲明方式:
|
||||
|
||||
```Go
|
||||
var cwd string
|
||||
|
Reference in New Issue
Block a user