Go 有哪些讓你相見恨晚的技巧?

astaxie發表於2016-11-01

我先來說兩個:

  1. 錯誤處理 不需要重複的檢測錯誤,通過最後的 error 來檢測 scanner := bufio.NewScanner(input) for scanner.Scan() { token := scanner.Text() // process token } if err := scanner.Err(); err != nil { // process the error }
  2. 測試處理 增加一個 test flag var update = flag.Bool("update", false, "Update test fixtures") if *update { if err := os.MkdirAll(filepath.Dir(f.Path), 0700); err != nil { t.Error(err) return } else if err := ioutil.WriteFile(f.Path, f.Got, 0600); err != nil { t.Error(err) return } } 這樣如果你的測試是針對 1000 個不同資料的測試結果,就可以預想資料,把結果快取在 fixture 裡面 go test -update,後面再次修改邏輯或者測試的時候,只要執行go test這樣就會比對結果和 fixture 裡面的資料結果,這樣就可以保證每次修改邏輯都是正確的。一旦結果不一致了就可以裡面看出來。
更多原創文章乾貨分享,請關注公眾號
  • Go 有哪些讓你相見恨晚的技巧?
  • 加微信實戰群請加微信(註明:實戰群):gocnio

相關文章