Go語言之路————go環境的初始化

Go語言之路————go環境的初始化

  • 前言
  • 一、Go的安裝
  • 二、環境配置
  • 三、初始化一個新項目
  • 四、常用的一些指令

前言

  • 我是一名多年Java開發人員,因為工作需要現在要學習go語言,Go語言之路是一個系列,記錄著我從0開始接觸Go,到后面能正常完成工作上的業務開發的過程,如果你也是個小白或者轉Go語言的,希望我這篇文章對你有所幫助。
  • 有關go其他基礎的內容的文章大家可以查看我的主頁,接下來主要就是把這個系列更完,更完之后我會在每篇文章中掛上連接,方便大家跳轉和復習。

一、Go的安裝

官網:https://go.dev/dl/。如果網不好的記得上梯子
關于go的版本,go最大的一個版本改動,就是Go的1.18版本,我愿把它和java8相比,1.18版本引入了泛型(后面會講),但是大多數生產企業會選擇1.19版本,因為它相比上個版本更加的完善。

我在官網四處找了一下,沒有發現有明確指出的LTS版本,在本文書寫的時候,最新版本是1.23.4版本,因為我是寫文章和測試用,我們就選擇這個最新的版本,Windows環境下記得下載我下圖紅框選的,不要下載到32位版本的了。
.在這里插入圖片描述

二、環境配置

  • GOROOT
    作用:GOROOT 指向 Go 語言的安裝目錄,這個目錄包含了 Go 的標準庫、編譯器、解釋器等核心組件。當你執行 go 相關命令時,系統會依據 GOROOT 找到這些基礎的運行和編譯資源。
  • GOPATH
    作用:GOPATH 是 Go 的工作空間目錄,它是一個存放你自己編寫的 Go 代碼、下載的第三方依賴包的地方。
  • Go Mod
    作用:1.13版本后,官方推薦的新一代包管理工具

GOROOT是我們必須配置的,但是現在官方推薦使用go mod,所以GOPATH的作用就被弱化了,但是這里還是建議配置上,因為有些老項目還會用這個,如果go mod找不到,就會從GOPATH 的目錄去尋找。

步驟:直接上圖吧
在這里插入圖片描述

在這里插入圖片描述

第一個是goroot,第二個是protobuf的環境變量,不用這個的可以不管,第三個就是go path的目錄。
控制臺測試一下配置是否成功,出現go的版本則配置正確。
在這里插入圖片描述

三、初始化一個新項目

  1. 我這里用的編輯器是GoLand 2022.3
    ![在這里插入圖片描述](https://i-blog.csdnimg.cn/direct/30f8123a5a7f464d9c13a339c0fbedb0.png

  2. 對新項目進線一下配置,打開enable go mod,并且配置代理:GOPROXY=https://mirrors.aliyun.com/goproxy/,國內這環境懂得都懂。
    在這里插入圖片描述
    控制臺開啟go mod,輸入以下神秘代碼:

    go env -w GO111MODULE=on
    
  3. 新建main文件

    package mainimport "fmt"func main() {fmt.Println("hello world")
    }
  4. 運行
    在這里插入圖片描述

  5. 如果我們從github上拉取了一個新項目,沒有go mod

四、常用的一些指令

1.如果我們從github上拉取了一個新項目,沒有go.mod文件,terminal中切換到項目目錄,執行一下代碼

go mod init module-name

其中module-name替換為具體的項目名就好了
2.刷新和整理包的命令

go mod tidy

這個命令會自動掃描項目代碼,分析代碼里導入的所有包,把這些依賴包的相關信息,像是版本號、哈希值等,正確添加到 go.mod 與 go.sum 文件當中 ,go.sum 主要用于校驗依賴包的完整性,防止包被篡改。
3.我們要引入一個外部包

go get url

其中的url基本都是github的地址,比如我們項目中要引入redis的包依賴

go get github.com/go-redis/redis/v8

如果我們要加入具體版本號,就在最后面用@符號,然后加入版本號就行

go get github.com/go-redis/redis/v8@v1.1.0

到這,我們的環境就搭建好了,下一篇,跟我一起走進go的基礎語法吧。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/65910.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/65910.shtml
英文地址,請注明出處:http://en.pswp.cn/web/65910.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

鼠標過濾驅動

文章目錄 概述代碼參考資料 概述 其編寫過程大體與鍵盤過濾驅動相似,只需要切換一下附加的目標設備以及創建的設備類型等。但在該操作后依然無法捕獲到Vmware創建的win7操作系統的鼠標irp信息,于是通過在獲取鼠標驅動,遍歷其所有的設備進而附…

鴻蒙UI開發——基于onTouch事件實現表情選擇膠囊

1、背 景 有朋友留言說,抖音APP中,長按評論按鈕觸發的快捷表情選擇膠囊動畫比較好(效果如下圖),希望使用鴻蒙ArkTs也實現一個類似的。 本文在鴻蒙ArkTs下也實現一個類似的效果,如下: 首先&…

Node.js——http 模塊(二)

個人簡介 👀個人主頁: 前端雜貨鋪 🙋?♂?學習方向: 主攻前端方向,正逐漸往全干發展 📃個人狀態: 研發工程師,現效力于中國工業軟件事業 🚀人生格言: 積跬步…

研華 PCI-1751 驅動更新導LabVIEW致程序異常

問題描述: 某 LabVIEW 程序長期運行正常,但在使用研華 PCI-1751 數據采集卡運行一段時間后,程序開始出現不正常的行為。具體過程如下: 初始問題: 更換新的 PCI-1751 板卡后,驅動程序被更新,但程…

接上篇基于Alertmanager 配置釘釘告警

Alertmanager 是一個用于處理和管理 Prometheus 警報的開源工具。它負責接收來自 Prometheus 服務器的警報,進行去重、分組、靜默、抑制等操作,并通過電子郵件、PagerDuty、Slack 等多種渠道發送通知。 主要功能 去重:合并相同或相似的警報&…

網絡原理(三)—— 傳輸層 之 UDP 和 TCP協議

傳輸層 在傳輸層兩大關鍵的協議就是UDP和TCP協議了,除此之外,還有別的傳輸層協議,本文章將介紹UDP和TCP協議,重點介紹TCP協議。 首先回顧TCP和UDP 的特點: UDP:不可靠傳輸,面向數據包&#xf…

針對服務器磁盤爆滿,MySql數據庫始終無法啟動,怎么解決

(點擊即可進入聊天助手) 很多站長在運營網站的過程當中都會遇到一個問題,就是網站突然無法打開,數據一直無法啟動 無論是強制重啟還是,刪除網站內的所有應用,數據庫一直無法啟動 這個時候,就需要常見的運維手段了,需要對服務器后臺各個資源,進行逐一排查…

高性能現代PHP全棧框架 Spiral

概述 Spiral Framework 誕生于現實世界的軟件開發項目是一個現代 PHP 框架,旨在為更快、更清潔、更卓越的軟件開發提供動力。 特性 高性能 由于其設計以及復雜精密的應用服務器,Spiral Framework框架在不影響代碼質量以及與常用庫的兼容性的情況下&a…

【面試題】Spring/SpringBoot部分[2025/1/6 ~ 2025/1/12]

Spring/SpringBoot部分[2025/1/6 ~ 2025/1/12] 1. 說說 Spring 啟動過程?2. 說說 Springboot 的啟動流程?3. 你了解的 Spring 都用到哪些設計模式?4. Spring 有哪幾種事務傳播行為?5. SpringBoot 是如何實現自動配置的?6. Spring…

【機器學習:十八、更高級的神經網絡概念】

1. 梯度下降法的改進:Adam算法 1.1 Adam算法簡介 Adam(Adaptive Moment Estimation)是一種優化算法,結合了動量梯度下降和 RMSProp 的優點,在處理稀疏梯度和高維空間優化時表現尤為出色。其核心在于動態調整每個參數…

計算機網絡之---VPN與隧道協議

VPN與隧道協議 VPN(虛擬專用網絡)和隧道協議是現代網絡安全技術的重要組成部分,它們主要用于在不安全的公共網絡(如互聯網)上建立一個安全的私密網絡連接。VPN通過加密通信和認證機制,確保數據的隱私性和完…

【STM32-學習筆記-6-】DMA

文章目錄 DMAⅠ、DMA框圖Ⅱ、DMA基本結構Ⅲ、不同外設的DMA請求Ⅳ、DMA函數Ⅴ、DMA_InitTypeDef結構體參數①、DMA_PeripheralBaseAddr②、DMA_PeripheralDataSize③、DMA_PeripheralInc④、DMA_MemoryBaseAddr⑤、DMA_MemoryDataSize⑥、DMA_MemoryInc⑦、DMA_DIR⑧、DMA_Buff…

SQL Server中可以通過擴展事件來自動抓取阻塞

在SQL Server中可以通過擴展事件來自動抓取阻塞,以下是詳細流程: 開啟阻塞跟蹤配置: ? 執行以下SQL語句來啟用相關配置: EXEC sp_configureshow advanced options, 1; RECONFIGURE; EXEC sp_configure blocked process thresh…

DNS解析域名簡記

域名通常是由: 權威域名.頂級域名.根域名組成的。 從左往右,級別依次升高,這和外國人從小范圍到大范圍的說話習慣相關。(我們自己是更習慣先說大范圍再說小范圍,如XX省XX市XX區XX路) DNS解析域名時,會先查…

【爬蟲】單個網站鏈接爬取文獻數據:標題、摘要、作者等信息

源碼鏈接: https://github.com/Niceeggplant/Single—Site-Crawler.git 一、項目概述 從指定網頁中提取文章關鍵信息的工具。通過輸入文章的 URL,程序將自動抓取網頁內容 二、技術選型與原理 requests 庫:這是 Python 中用于發送 HTTP 請求…

關于掃描模型 拓撲 和 傳遞貼圖工作流筆記

關于MAYA拓撲和傳遞貼圖的操作筆記 一、拓撲低模: 1、拓撲工作區位置: 1、準備出 目標 高模。 (高模的狀態如上 ↑ )。 2、打開頂點吸附,和建模工具區,選擇四邊形繪制. 2、拓撲快捷鍵使…

解決無法遠程管理Windows Server服務器核心安裝

問題 有時,人們會為了節省運算資源,例如運行Hyper-V虛擬機,而選擇Windows Server核心安裝,即無圖形化界面。這時,我們就只能通過Powershell命令對其進行操控,或為了獲得圖形化界面而使用遠程服務器管理工具…

SQL HAVING 子句深入解析

SQL HAVING 子句深入解析 介紹 SQL(Structured Query Language)是一種用于管理關系數據庫管理系統的標準編程語言。在SQL中,HAVING子句是與GROUP BY子句一起使用的,用于篩選分組后的數據。它根據聚合函數的結果對組進行條件過濾…

【計算機網絡】lab7 TCP協議

🌈 個人主頁:十二月的貓-CSDN博客 🔥 系列專欄: 🏀計算機網絡_十二月的貓的博客-CSDN博客 💪🏻 十二月的寒冬阻擋不了春天的腳步,十二點的黑夜遮蔽不住黎明的曙光 目錄 1. 實驗目的…

JavaRestClient 客戶端初始化+索引庫操作

1. 介紹 ES官方提供了各種不同語言的客戶端,用來操作ES。這些客戶端的本質就是組裝DSL語句,通過http請求發送給ES。 Elasticsearch目前最新版本是8.0,其java客戶端有很大變化。不過大多數企業使用的還是8以下版本 2. 客戶端初始化 在elastic…