一、go語言開發環境概述
如何挑選合适的編輯器或內建開發環境呢?下面列舉了一些Go語言內建開發環境或編輯器應該具備的特性:
- 文法高亮是必不可少的功能,這也是為什麼每個開發工具都提供配置檔案來實作自定義配置的原因。
- 擁有較好的項目檔案縱覽和導航能力,可以同時編輯多個源檔案并設定書簽,能夠比對括号,能夠跳轉到某個函數或類型的定義部分。
- 完美的查找和替換功能,替換之前最好還能預覽結果。
- 當有編譯錯誤時,輕按兩下錯誤提示可以跳轉到發生錯誤的位置。
- 跨平台,能夠在 Linux、Mac OS X 和 Windows 下工作,這樣就可以專注于一個開發環境。
- 能夠通過插件架構來輕易擴充和替換某個功能。
- 擁有斷點、檢查變量值、單步執行、逐過程執行辨別庫中代碼的能力。
- 能夠友善的存取最近使用過的檔案或項目。
- 擁有對包、類型、變量、函數和方法的智能代碼補全的功能。
- 能夠友善地在不同的 Go 環境之間切換。
- 針對一些特定的項目有項目模闆,如:Web 應用,App Engine 項目,進而能夠更快地開始開發工作。
下面為大家推薦幾款常用的适用于Go語言的編輯器或內建開發環境。
1) Goland
Goland 是由 JetBrains 公司開發的一個新的商業 IDE,旨在為 Go 開發者提供的一個符合人體工程學的新的商業 IDE。Goland 整合了 IntelliJ 平台(一個用于 java 語言開發的內建環境,也可用于其他開發語言),提供了針對Go語言的編碼輔助和工具內建。
關于 Goland 的詳細使用說明請參考《Goland 2019下載下傳和安裝》一節。
2) LiteIDE
LiteIDE是一款專門針對 Go 開發的內建開發環境,在編輯、編譯和運作 Go 程式和項目方面都有非常好的支援。同時還包括了對源代碼的抽象文法樹視圖和一些内置工具(此開發環境由國人 vfc 大叔開發)。
LiteIDE 是一款非常好用的輕量級 Go 內建開發環境(基于 QT、Kate 和 SciTE),包含了跨平台開發及其它必要的特性,對代碼編寫、自動補全和運作調試都有極佳的支援。它采用了 Go 項目的概念來對項目檔案進行浏覽和管理,它還支援在各個 Go 開發環境之間随意切換以及交叉編譯的功能。
同時,它具備了抽象文法樹視圖的功能,可以清楚地縱覽項目中的常量、變量、函數、不同類型以及他們的屬性和方法。
關于 LiteIDE 的安裝和使用大家可以參考《LiteIDE搭建Go語言開發環境》一節。
3) Sublime Text
一個革命性的跨平台(Linux、Mac OS X、Windows)文本編輯器,它支援編寫非常多的程式設計語言代碼。對于 Go 而言,它有一個插件叫做 GoSublime 來支援代碼補全和代碼模版。
4) GoClipse
是一款 Eclipse IDE 的插件,擁有非常多的特性以及通過 GoCode 來實作代碼補全功能。其依附于著名的 Eclipse 這個大型開發環境,雖然需要安裝 JVM 運作環境,但卻可以很容易地享有 Eclipse 本身所具有的諸多功能。這是一個非常好的編輯器,完善的代碼補全、抽象文法樹視圖、項目管理和程式調試功能。
如果你對內建開發環境都不是很熟悉,那就使用 LiteIDE 吧,另外使用 GoClipse 或者 IntelliJ Idea Plugin 也是不錯的選擇。
代碼補全一般都是通過内置 GoCode 實作的(如:LiteIDE、GoClipse),如果需要手動安裝 GoCode,在指令行輸入指令
go get -u github.com/nsf/gocode
即可(務必事先配置好 Go 環境變量) 。
5) Visual Studio Code(簡稱VS Code)
是一款由微軟公司開發的,能運作在 Mac OS X、Windows 和 Linux 上的跨平台開源代碼編輯器。
VS Code 使用 JSON 格式的配置檔案進行所有功能和特性的配置,同時它還可以通過擴充程式為編輯器實作程式設計語言高亮、參數提示、編譯、調試、文檔生成等各種功能。
二、Goland使用
下載下傳位址https://www.jetbrains.com/go/
打開安裝 ,安裝目錄自己定義
開始安裝,等待安裝完成即可。安裝完成,勾選 Run Goland 并點選 Finish,結束安裝并啟動 Goland。
第一次啟動 Goland 時會提示我們導入設定資訊,這裡我們選擇第二項,不導入設定資訊。
點選 OK 後發現需要激活,網上自行搜尋方法,
在開始敲代碼之前需要先建立一個項目,選擇“New Project”建立一個項目
選擇項目位址和go安裝目錄
go_project // go_project為GOPATH目錄
-- bin
-- myApp1 // 編譯生成
-- myApp2 // 編譯生成
-- myApp3 // 編譯生成
-- pkg
-- src
-- myApp1 // project1
-- models
-- controllers
-- others
-- main.go
-- myApp2 // project2
-- models
-- controllers
-- others
-- main.go
-- myApp3 // project3
-- models
-- controllers
-- others
-- main.go