如何學習 Go
Go 語言的設計初衷
- 針對其他語言的痛點進行設計
- 加入併發程式設計
- 為大資料,微服務,併發而生的通用程式語言
Go 語言很特別
- 沒有”物件”,沒有繼承多型,沒有泛型,沒有 try/catch
- 有介面,函數語言程式設計, CSP 併發模型( goroutine + channel )
- 學習 go 語言簡單,應為語法簡單
通過示例學習 Go
- 語法部分:每個小片段解決實際問題
- 綜合部分:經典演算法+典型例題+微型專案
- 實戰專案部分:搭建分散式爬蟲,結構複雜
學習概覽
- 基本語法
. 變數
. 選擇,迴圈
. 指標,陣列,容器 - 面向介面
. 結構體
. duck typing的概念
. 組合的思想 - 函數語言程式設計
. 閉包的概念
. 多樣的例題 - 工程化
. 資源管理,錯誤處理
. 測試和文件
. 效能調優 - 併發程式設計
. goroutine 和 channel
. 理解排程器
. 多樣的例題
專案實現
Go語言的安裝
- 下載: studygolang.com/dl (國內映象)
下載注意事項:- Go 官方網址為 golang.org 訪問較為困難所以使用國內映象
- 安裝包下載是注意選擇 go1.13 或者以上版本, 1.13對映象功能進行了完善
- 國內映象配置
安裝完成後可以使用go version
檢視 go 是否安裝成功(請使用1.13或以上版本)
通過go env
檢視映象配置
- GOPROXY 是拉取依賴或者第三方庫所訪問的網址,如果可以提供則直接從網址中拉取,如果無法提供就 direct 從github庫中拉取,圖中網址為谷歌網址,建議替換為國內映象庫.
替換映象命令: 終端執行go env -w GOPROXY=https://goproxy.cn,direct
- GOMODULE(圖中為GO111MODULE) 的值為
on/off
,當前預設為空.
空的意思是當前目錄在 GOPATH下為 on ,如果不在GOPATH下為 off
建議將其預設值開啟,有時候 on 有時候 off 非常容易踩坑
開啟 GOMODUL 命令:go env -w GO111MODULE=on
- 安裝 goimports
go get -v golang.org/x/tools/cmd/goimports
(安裝成功)
Go 開發環境
常用開發環境: vi,emacs,idea,eclipse,vscode,sublime… + go外掛 或者直接使用 Goland 進行開發
idea + go 外掛的使用
- 安裝 idea(Ultimate)
- 安裝 go 外掛
選擇右下角 configure -> plugins 搜尋 go 進行安裝
搜尋 file watcher 進行安裝 (每次儲存執行程式碼可以按照go語言標準進行格式化) - 建立專案
選擇 Go Modules(vgo) 注意 Proxy 中的路徑是否正確,如果是direct 記得替換成之前設定的https://goproxy.cn,direct
設定goimports
開啟設定 搜尋 file watcher 點選新增 選擇 goimports 點選確定
goimpront 可以在儲存時可以將程式碼格式化,沒有新增的import自動新增上去並且排序,非常的方便
vscode + go 外掛
vscode 對 go 的支援也非常的好,在使用go語法時未安裝會自動跳出安裝提示,按照提示安裝即可
注意: vscode 執行 go 需要在命令列中執行相關檔案即可.
本作品採用《CC 協議》,轉載必須註明作者和本文連結