go語言vscode集成開發環境搭建

来源:https://www.cnblogs.com/onlyac/archive/2023/08/14/17627352.html
-Advertisement-
Play Games

[TOC] ## 本篇概要 搭建go語言環境,除了要搭建go語言的編譯環境,還要搭建go語言的集成開發環境,為此需要選擇go語言的集成開發環境的工具,這就是“工於善其事,必先利其器”,可以大大加快自己的開發進度。 ## 集成開發環境工具(ide) 這裡我主要介紹從我2016年開始學習go語言以來使用 ...


目錄

本篇概要

搭建go語言環境,除了要搭建go語言的編譯環境,還要搭建go語言的集成開發環境,為此需要選擇go語言的集成開發環境的工具,這就是“工於善其事,必先利其器”,可以大大加快自己的開發進度。

集成開發環境工具(ide)

這裡我主要介紹從我2016年開始學習go語言以來使用過的go語言的所有集成開發環境工具,如果你對這段沒有興趣,可以直接跳過。

Goland或IntelliJ IDEA

這是我較早使用的集成開發環境工具,Goland或IntelliJ IDEA等JetBrains產品是非常優秀的go語言集成開發環境工具,其中IntelliJ IDEA更是一個幾乎所有主流語言的集成開發環境工具。

Goland或IntelliJ IDEA是目前我用過的最好的go語言集成開發環境,它比其他開發環境優秀的地方是對於go語言介面的完美支持。它不僅可以快速檢索哪些go語言的機構體實現了一個go語言介面,而且能快速檢索一個go語言的機構體是否實現某個go語言介面,而其他集成開發環境並不能完美做到這一點(事實上這點很重要,go語言是面向介面的,而且是隱式的)。如果你是一個初學go語言的開發者,我強烈推薦你使用這個集成開發環境工具!另外,它配置非常簡單,對新進的開發者也極其友好,你肯定會喜歡上它的開發環境和插件。

但是這個工具的唯一缺點就是每年需要你投入一定的資金(現在第一年US $99.00)購買許可證,當然每年的許可費用會越來越便宜,另外如果你是學生,可以免費白嫖這個工具。

Visual Studio Code

Visual Studio Code簡稱vscode,這是我現在使用的集成開發環境,而且是雖然它不如Goland或IntelliJ IDEA,但是它支持go語言google開發團隊開發的官方語言伺服器gopls,在go語言1.13時代之後官方語言伺服器gopls已經逐步替代了許多其他的go語言工具,另外我覺得Visual Studio Code是目前免費go語言集成開發工具做的最好的,由於它對官方語言伺服器的支持,為此Visual Studio Code在go語言編程時支持go mod依賴,代碼補全,語義檢查等等方面支持都很好。

其他集成開發環境

其他的我還使用過的ide工具,如[sublime text 3](sublime text 3)以及LiteIDE,就不詳細介紹了。

另外,還有我沒使用過但聽過的go語言集成開發環境,Eclipse,Atom,Emacs。

Visual Studio Code的go語言開發環境搭建

這裡主要介紹了windows操作系統的搭建

Visual Studio Code安裝

可以從官網下載Visual Studio Code註意:下載可能會很慢

按照指引,點擊下一步

註意選擇以上並且不斷點擊下一步即可完成安裝

go編譯環境安裝

go安裝軟體官網下載合適的go編譯環境,例如本次我下載的版本是go1.20.7.windows-amd64.msi,需要註意的是go語言的鏡像官網不僅僅提供下載,請好好探索一下它,後面的篇章中我還會詳細提及它的強大作用。

同意協議後,選擇安裝路徑,請記住這個路徑,然後按next完成安裝

配置go環境變數

右擊電腦,點擊屬性後出現以下頁面

點擊高級選項,如下點擊

如下點擊新建環境變數

  1. 變數名:GOROOT 變數值:E:\lang\go ,這是go語言的編譯環境安裝目錄,如上所示。
  2. 變數名:GO11MODULE 變數值:on,這是go語言的第三方模塊依賴的。
  3. 變數名:GOPROXY 變數名:https://goproxy.cn,direct , 這是go語言的代理,用於能夠正常訪問一些Google的go語言的資源。
  4. 變數名:GOPATH 變數名:E:\projects 這是go語言的項目位置。

如下圖將%GOROOT%\bin加入path

之後不斷確認你打開的所有視窗,建議重啟後,使用win+R打開cmd輸入以下命令檢查是否正常安裝

go version
go version go1.20.7 windows/amd64

安裝go語言插件

在vscode插件市場選擇go語言

安裝完後選擇編輯go語言插件配置

直接在json文件中編輯

如下:

{
    "go.gopath": "E:\projects"
}

在E:\projects下建立如下文件夾bin,pkg, src

-----+---bin
     +---pkg
     +---src

安裝go語言插件的依賴軟體,使用Ctil+Shift+P

選擇安裝所有插件

以下是安裝完的場景

使用golang編程

在E:\projects\src下建立如下文件github.com/Breeze0806/test/main.go

-----+--bin
     +--pkg
     +--src--+--github.com--+--Breeze0806--+--test--+--main.go--

另外加入vscode的項目配置,在.vscode/setting.json配置以下項目:

{
    "go.formatTool": "goimports",
    "go.lintOnSave": "package",
    "go.vetOnSave": "package",
    "go.useLanguageServer": true,
    "[go]": {
        "editor.formatOnSave": true,
        "editor.codeActionsOnSave": {
            "source.organizeImports": true,
        },
        // Optional: Disable snippets, as they conflict with completion ranking.
        "editor.snippetSuggestions": "none",
    },
    "[go.mod]": {
        "editor.formatOnSave": true,
        "editor.codeActionsOnSave": {
            "source.organizeImports": true,
        },
    },
    "gopls": {
        // Add parameter placeholders when completing a function.
        "usePlaceholders": true,

        // If true, enable additional analyses with staticcheck.
        // Warning: This will significantly increase memory usage.
        "staticcheck": false,
    },

    "go.languageServerFlags": [
        "-rpc.trace", // for more detailed debug logging
        "serve",
        "--debug=localhost:6060", // to investigate memory usage, see profiles
    ],
    "go.coverOnSave": true,
    "go.coverOnSingleTest": true,
    "go.coverOnSingleTestFile": true,
    "go.coverShowCounts": true,
    "go.testOnSave": false,
    "go.testFlags": [],
    "go.lintTool": "golint"
}

在main.go中寫入以下程式

package main
func main(){
    fmt.Println("Hello")
}

使用go mod 命令建立項目

go mod init github.com/Breeze0806/test
go mod tidy
go run main.go

如圖test目錄下多了go.mod,輸出結果為Hello

本篇小結

本篇討論了go語言的當前所有的集成開發環境,並且介紹了Visual Studio Code的windows操作系統下的go語言開發環境搭建,那麼其他操作系統有沒有辦法搭建?有的,由於樓主使用的windows系統,其實unbuntu或者mac的搭建方式類似。

本篇小結

本篇討論了go語言的當前所有的集成開發環境,並且介紹了Visual Studio Code的windows操作系統下的go語言開發環境搭建,那麼其他操作系統有沒有辦法搭建?有的,由於樓主使用的windows系統,其實unbuntu或者macos的搭建方式類似,

下篇預告

《go語言的數據類型那點事》


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • > 拋磚引玉:多個查詢需要在同一時刻進行數據的修改,就會產生併發控制的問題。我們需要如何避免寫個問題從而保證我們的資料庫數據不會被破壞。 ## 鎖的概念 讀鎖是共用的互相不阻塞的。多個事務在聽一時刻可以同時讀取同一資源,而相互不幹擾。 寫鎖的排他的。一個寫鎖會阻塞其他寫鎖或讀鎖。出於安全考慮只有這樣 ...
  • CentOS 7.9 環境的安裝不再贅述,不清楚可以參看之前的文章:https://www.cnblogs.com/iflytek/p/14403664.html 1、準備GBase 8a的安裝包:GBase8a-NoLicense-Free-8.6.2_build43-R7-redhat7.3-x ...
  • 博客推行版本更新,成果積累制度,已經寫過的博客還會再次更新,不斷地琢磨,高質量高數量都是要追求的,工匠精神是學習必不可少的精神。因此,大家有何建議歡迎在評論區踴躍發言,你們的支持是我最大的動力,你們敢投,我就敢肝 ...
  • 最近翻到 ElementUI 的日期組件源碼,看到一些處理日期的工具方法,挺有意思,平常沒有註意到,特此記錄下來。 ### 獲取當前日期的前一天,後一天 ```js export const prevDate = function(date, amount = 1) { return new Dat ...
  • 在現代的 Web 開發中,表單是不可或缺的組件之一。用戶可以通過表單輸入和提交數據,而開發者則需要對這些數據進行處理和存儲。然而,在某些情況下,我們可能需要重置表單並恢復到最初的狀態。 本文介紹瞭如何使用 form 表單處理庫來實現表單恢復初始數據的功能。通過 form 提供的靈活性和方便性,我們... ...
  • ![](https://img2023.cnblogs.com/blog/3076680/202308/3076680-20230812234533249-1035884507.png) # 1. 在軟體與外部環境之間的許多交匯點上,版本控制基本上處於混亂狀態 ## 1.1. 不應該為了更新自身系統 ...
  • CQRS是Command Query Responsibility Segregation的縮寫,一般稱作命令查詢職責分離。從字面意思理解,就是將命令(寫入)和查詢(讀取)的責任劃分到不同的模型中。 對比一下常用的 CRUD 模式(創建-讀取-更新-刪除),通常我們會讓用戶界面與負責所有四種操作的數... ...
  • ![](https://img2023.cnblogs.com/blog/3076680/202308/3076680-20230811224443622-1444719159.png) # 1. 部署行為是系統生命的重要組成部分 ## 1.1. 只編寫代碼是不夠的,只要沒有在生產環境中運行,一切都 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...