Go 開發技巧

kenuo發表於2018-08-30
  • package 的名字和目錄名一樣,main 除外
  • string 表示的是不可變的字串變數,對 string 的修改是比較重的操作,基本上都需要重新申請記憶體,如果沒有特殊需要,需要修改時多使用 []byte
  • 儘量使用 strings 庫操作 string,這樣做可以提高效能
  • append 要小心自動分配記憶體,append 返回的可能是新分配的地址
  • 如果要直接修改 map 的 value 值,則 value 只能是指標,否則要覆蓋原來的值
  • map 在併發中需要加鎖
  • 編譯過程無法檢查 interface{} 的轉換,只有執行時檢查,小心引起 panic
  • 使用 defer,保證退出函式時釋放資源
  • 儘量少用全域性變數,通過引數傳遞,使每個函式都是“無狀態”的,這樣減少耦合,也方便分工和單元測試
  • 引數如果比較多,將相關引數定義成結構體傳遞

by JeffreyBool blog :point_right: link