創建變量:
創建變量:
使用結構變量名的第一個字母的大寫, 可使結構變量能在包外被訪問 (可見), 通常情況下, 最好使用一個工廠函數, 來定義結構變量, 有時需強制使用, 參見 10.2 節.
併發執行的效率遠高於串行計算, 同時在併發協程中, 任務的執行成本, 也高於併發線程的創建和通訊的成本.
• 使用帶緩衝的併發通道, 可提升性能
一個帶緩衝的併發通道更容易實現雙向傳輸, 這依賴於上下文環境所給出的性能 (通常可提升 10 倍以上), 如果併發通道的緩存容量進行調整, 還可進一步提升性能.
• 限制放入併發通道的數據量, 而將其放入到數組中
如果在併發協程之間需要傳輸大量數據, 併發通道將變成一個瓶頸, 這時可在數組中, 實現巨量數據的壓
縮, 等完成傳輸後, 再進行解壓, 通常情況下, 可將傳輸速率提升 10 倍以上.
• 併發通道的迭代器模式, 參見 14.11 節
• 限制併發請求的數量, 參見 14.11 節
• 在多核處理器中, 實現並行計算, 參見 14.13 節
• 終止一個併發協程
• 讓長時間運行的程序放棄同步操作, 參見 14.5 節
• 使用包含併發通道的計時器和定時器, 參見 14.5 節
• 典型的後臺服務器模式, 參見 14.4 節
• 創建, 再解析和驗證一個模板
• 如果在 web 環境中, 可使用 html 過濾器, 轉義 html 特殊字符, 比如 {{html .}}, 或是轉義一個結構數據
域, 如 {{.FieldName |html}}
• 使用模板緩存, 參見 15.7 節
• 當出現錯誤時, 可終止程序
• 在允許的情況下 (函數中), 應使用包含初始化的聲明格式, 即:=.
• 應使用字節數據, 來替代字符串
• 應使用 slice 來替代數組
• 在允許的情況下, 應使用 slice 或數組, 來替代 map
• 如果只需處理數值, 不想理會索引值時, 可在 for-range 循環中, 遍歷一個 slice, 因爲 for-range 的速度稍快
• 如果數組處於稀疏狀態 (包含大量的零值和 nil), 可替換成一個 map, 以減少內存的用量
• 爲 map 類型, 指定一個初始容量
• 在定義方法時, 應使用一個結構指針作爲接收器
• 應使用 constant 或 flag, 來描述代碼中的常量
• 在需要分配大量內存的情況下, 應當使用緩衝
• 應使用模板緩存