最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

手把手教你用VS?code快速搭建一個(gè)Golang項(xiàng)目

 更新時(shí)間:2023年04月17日 09:07:59   作者:酷爾。  
Go語言是采用UTF8編碼的,理論上使用任何文本編輯器都能做Go語言開發(fā),下面這篇文章主要給大家介紹了關(guān)于使用VS?code快速搭建一個(gè)Golang項(xiàng)目的相關(guān)資料,文中通過圖文介紹的非常詳細(xì),需要的朋友可以參考下

前言

VC code是一款巨好用的編輯器,使用vs code開發(fā)項(xiàng)目需要進(jìn)行一些配置。項(xiàng)目中需要用到很多的包,無論是自己建的還是第三方的。由于go語言的生態(tài)環(huán)境沒有java與python那樣好,沒有一個(gè)好的的包管理工具這給想用vs code開發(fā)golang項(xiàng)目的同學(xué)帶來了困擾,本篇博客寫了關(guān)于一個(gè)go語言初學(xué)者如何使用VScode搭建go語言項(xiàng)目的過程,對初學(xué)者很友好,可以快速的搭建起來一個(gè)go語言項(xiàng)目。如果不擅長配置的話可以使用goland,相對于goland來說,VScode搭建項(xiàng)目顯得困難了許多。接下來就帶大家了解一下如何在沒有集成開發(fā)環(huán)境下手刃一個(gè)go語言項(xiàng)目。

安裝go語言環(huán)境

這個(gè)巨簡單就不說了,大家可以網(wǎng)上檢索一下教程。

了解Go開發(fā)相關(guān)的環(huán)境變量

#GOROOT:GOROOT就是Go的安裝目錄,(類似于java的JDK)。不用往環(huán)境變量配置。包管理方式變成Go Module之后就用處不大了。
GOROOT = D:\Go (你安裝go環(huán)境的目錄)   
#GOPATH:GOPATH是我們的工作空間,保存go項(xiàng)目代碼和第三方依賴包。安裝后,在環(huán)境變量中有。
GOPATH = %USERPROFILE%\go
#配置代理加速(因?yàn)間o語言用到的包大多數(shù)都在github)
GOPROXY=https://goproxy.cn,direct

熟悉Go Module

(1)使用 go module 管理依賴后會在項(xiàng)目根目錄下生成兩個(gè)文件 go.mod 和 go.sum。go.mod 中會記錄當(dāng)前項(xiàng)目的所依賴的包的信息。

(2)在需要使用時(shí)才開啟GO111MODULE = on,平時(shí)GO111MODULE = off,避免在已有項(xiàng)目中意外引入 go module。

(3)go module 的目的是依賴管理,所以使用 go module 時(shí)你可以舍棄 go get 命令(但是不是禁止使用, 如果要指定包的版本或更新包可使用go get,平時(shí)沒有必要使用)

要使用go module 首先要設(shè)置GO111MODULE=on,GO111MODULE 有三個(gè)值,off、on、auto。
auto 會根據(jù)當(dāng)前目錄下是否有 go.mod 文件來判斷是否使用 modules 功能。
平時(shí) GO111MODULE = off,在需要使用的時(shí)候再開啟,避免在已有項(xiàng)目中意外引入 go module。
命令:
set GO111MODULE=on
go env // 查看 GO111MODULE 選項(xiàng)為 on 代表修改成功
#初始化。先進(jìn)入test項(xiàng)目下,然后執(zhí)行此命令,項(xiàng)目根目錄會出現(xiàn)一個(gè) go.mod 文件
go mod init test 
#檢測依賴。tidy會檢測該文件夾目錄下所有引入的依賴,寫入 go.mod 文件,寫入后你會發(fā)現(xiàn) go.mod 文件有所變動
go mod tidy 
#下載依賴。我們需要將依賴下載至本地,而不是使用 go get
go mod download 
#導(dǎo)入依賴。此命令會將剛才下載至 GOPATH 下的依賴轉(zhuǎn)移至該項(xiàng)目根目錄下的 vendor(自動新建) 文件夾下, 此時(shí)我們就可以使用這些依賴了
go mod vendor 
#依賴更新:這里的更新不是指版本的更新,而是指引入新依賴,依賴更新請從檢測依賴部分一直執(zhí)行即可:
go mod tidy
go mod download
go mod vendor

注:go mod vendor創(chuàng)建的文件夾里面可以放用戶自己的定制的包(放入后直接用包名就可以導(dǎo)入項(xiàng)目不需要相對路徑)

創(chuàng)建一個(gè)go項(xiàng)目

  1. 新建文件夾demo,作為項(xiàng)目根目錄
  2. cmd,執(zhí)行命令:go mod init demo 此時(shí)會生成一個(gè)go.mod文件(存放項(xiàng)目依賴)
  3. vscode打開文件:選擇項(xiàng)目根目錄demo
  4. 新建main.go文件:在根目錄下創(chuàng)建main.go文件
  5. 執(zhí)行
    1. go mod tidy // 添加或者刪除 modules,取決于依賴的引用 (執(zhí)行完生成go.sum文件)
      注意是添加刪除,用不好vendor內(nèi)的自定義包就沒有了
    2. go mod vendor // 復(fù)制依賴到 vendor 目錄下

如圖

此時(shí)就可以放肆地開發(fā)了,自己定義的包要放在vendor目錄下。不要隨便使用go mod tidy命令,因?yàn)檫@個(gè)命令是檢測當(dāng)前目錄的依賴,也就是main.go所在的目錄,如果是你自己寫了項(xiàng)目,并且有很多自定義包他很可能會給你移除掉。

項(xiàng)目遷移

項(xiàng)目中可能引用了大量的github第三方庫,使用go mod tidy可以直接將所有的第三方庫下載下來(前提是網(wǎng)絡(luò)通暢)
本篇文章上面教過大家Go語言配置加速代理了,最好配置一下。

  • 將別人的項(xiàng)目解壓出來
  • 在main.go同級目錄下進(jìn)入cmd命令行
  • 執(zhí)行 go mod tidy
  • 執(zhí)行 go mod download
  • 執(zhí)行 go mod vendor
  • 將自定義包導(dǎo)入vendor目錄下
  • 項(xiàng)目配置完成

可以看一下下面的項(xiàng)目目錄結(jié)構(gòu):

總結(jié)

到此這篇關(guān)于用VS code快速搭建一個(gè)Golang項(xiàng)目的文章就介紹到這了,更多相關(guān)VS code快速搭建Golang項(xiàng)目內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • gorm整合進(jìn)go-zero的實(shí)現(xiàn)方法

    gorm整合進(jìn)go-zero的實(shí)現(xiàn)方法

    go-zero提供的代碼生成器里面,沒有提供orm框架操作,但是提供了遍歷的緩存操作,所以可以利用gorm當(dāng)作一個(gè)sql語句的生成器,把生成后的sql語句放到go-zero生成的模板中去執(zhí)行,對gorm整合進(jìn)go-zero的實(shí)現(xiàn)方法感興趣的朋友一起看看吧
    2022-03-03
  • 解析GOROOT、GOPATH、Go-Modules-三者的關(guān)系

    解析GOROOT、GOPATH、Go-Modules-三者的關(guān)系

    這篇文章主要介紹了解析GOROOT、GOPATH、Go-Modules-三者的關(guān)系,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-10-10
  • 談?wù)刧olang的netpoll原理解析

    談?wù)刧olang的netpoll原理解析

    本文詳細(xì)介紹了Go語言中netpoll部分的實(shí)現(xiàn)細(xì)節(jié)和協(xié)程阻塞調(diào)度原理,特別是epoll在Linux環(huán)境下的工作原理,Go語言通過將epoll操作放在runtime包中,結(jié)合運(yùn)行時(shí)調(diào)度功能,實(shí)現(xiàn)了高效的協(xié)程I/O操作,感興趣的朋友跟隨小編一起看看吧
    2024-11-11
  • Golang 如何判斷數(shù)組某個(gè)元素是否存在 (isset)

    Golang 如何判斷數(shù)組某個(gè)元素是否存在 (isset)

    這篇文章主要介紹了Golang 如何判斷數(shù)組某個(gè)元素是否存在 (isset),具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-04-04
  • go?defer延遲調(diào)用的使用場景示例詳解

    go?defer延遲調(diào)用的使用場景示例詳解

    這篇文章主要為大家介紹了go?defer延遲調(diào)用的使用場景示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-05-05
  • golang panic 函數(shù)用法示例詳解

    golang panic 函數(shù)用法示例詳解

    在Go語言中,panic用于觸發(fā)不可恢復(fù)的錯誤,終止函數(shù)執(zhí)行并逐層向上觸發(fā)defer,最終若未被recover捕獲,程序會崩潰,recover用于在defer函數(shù)中捕獲panic,恢復(fù)程序流程,建議優(yōu)先返回error,僅在嚴(yán)重錯誤或不可恢復(fù)場景下使用panic,并在關(guān)鍵位置recover,感興趣的朋友一起看看吧
    2025-03-03
  • Golang 實(shí)現(xiàn)獲取當(dāng)前函數(shù)名稱和文件行號等操作

    Golang 實(shí)現(xiàn)獲取當(dāng)前函數(shù)名稱和文件行號等操作

    這篇文章主要介紹了Golang 實(shí)現(xiàn)獲取當(dāng)前函數(shù)名稱和文件行號等操作,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-05-05
  • 一文帶你深入了解Go語言中的事務(wù)

    一文帶你深入了解Go語言中的事務(wù)

    事務(wù)中止時(shí),你結(jié)束事務(wù)了嗎?在開發(fā)時(shí)有可能就會犯這樣的錯誤,其問題就是你在提交事務(wù)時(shí),如果中間有其他業(yè)務(wù)就取消操作,那么事務(wù)也關(guān)閉了嗎?本文就來詳細(xì)講講
    2023-04-04
  • go語言中proto文件的使用

    go語言中proto文件的使用

    在Go語言編程中,.proto文件用于定義Protocol?Buffers數(shù)據(jù)結(jié)構(gòu)和服務(wù),是實(shí)現(xiàn)跨語言通信和高效序列化的關(guān)鍵,具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-10-10
  • Golang網(wǎng)絡(luò)模型netpoll源碼解析(具體流程)

    Golang網(wǎng)絡(luò)模型netpoll源碼解析(具體流程)

    本文介紹了Golang的網(wǎng)絡(luò)模型netpoll的實(shí)現(xiàn)原理,本文將從為什么需要使用netpoll模型,以及netpoll的具體流程實(shí)現(xiàn)兩個(gè)主要角度來展開學(xué)習(xí),感興趣的朋友跟隨小編一起看看吧
    2024-11-11

最新評論

建始县| 新泰市| 伊宁县| 靖远县| 西乌珠穆沁旗| 鄂伦春自治旗| 兖州市| 甘肃省| 崇礼县| 大庆市| 寿光市| 客服| 葫芦岛市| 青冈县| 东丰县| 望都县| 探索| 清原| 永登县| 黄石市| 凤城市| 中宁县| 娄底市| 珲春市| 麻栗坡县| 高陵县| 兴业县| 如东县| 肃南| 沂源县| 古交市| 宜章县| 顺平县| 鄢陵县| 金川县| 察哈| 延津县| 武定县| 南阳市| 荔波县| 敦化市|