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

GO 語(yǔ)言運(yùn)行環(huán)境的基礎(chǔ)知識(shí)

 更新時(shí)間:2022年09月19日 08:08:52   作者:芒果和小貓  
這篇文章主要介紹了GO 語(yǔ)言運(yùn)行環(huán)境的基礎(chǔ)知識(shí)的相關(guān)資料,需要的朋友可以參考下

1. GOPATH 和 GOROOT(環(huán)境變量)

1. GOROOT

go 編譯器、標(biāo)準(zhǔn)庫(kù)等安裝的地方,所有我們寫(xiě)的代碼其實(shí)都是文本文件而已,需要編譯器等工具將其加工成可執(zhí)行文件或者庫(kù)文件才能使用,每種語(yǔ)言都有自己的這樣一套“工具”。GOROOT 就是 go 語(yǔ)言的這類(lèi)“工具”的安裝目錄。

2. GOPATH

類(lèi)似工作區(qū)(workspace)的概念,其中里面有三個(gè)文件夾

  • src:保存自己的源代碼,或者第三方依賴(lài)的代碼,有了 go module 現(xiàn)在一般不用這個(gè)了;
  • pkg:一般保存一些庫(kù)文件,在 go module 模式中,也存儲(chǔ)下載下來(lái)的依賴(lài) module;
  • bin:它保存已編譯的可執(zhí)行文件;

有一些老的 go 教程,需要源代碼放在 src 目錄下,現(xiàn)在這種模式已經(jīng)不推薦了,因?yàn)楝F(xiàn)在推薦的是 go module 模式,自己寫(xiě)的 module 放在哪里都可以。 之所以老的那種模式被廢棄,主要原因是無(wú)法很好的做依賴(lài)管理。

3. Package

GO 語(yǔ)言使用 package 來(lái)組織源代碼的,就像其他的語(yǔ)言一樣,在程序內(nèi)部需要將功能進(jìn)行劃分,任何一個(gè) go 語(yǔ)言程序必須屬于一個(gè)package,每個(gè) go 文件的開(kāi)頭要寫(xiě)上 package xxx。
package 一般要滿(mǎn)足如下三個(gè)條件:

  • 同一個(gè)目錄下的同級(jí)的所有 .go 文件應(yīng)該屬于一個(gè)包;
  • 包名建議和目錄名同名;
  • 一個(gè) go 程序有且只有一個(gè) main 函數(shù)作為程序入口,且必須屬于 main 包,沒(méi)有或者有多個(gè) main 包,編譯程序會(huì)出錯(cuò)。

2. Go Module

1. GO111MODULE

Go Module 在 go 1.14 正式發(fā)布,不用再把源代碼放在 src 文件夾下,比之前更好的依賴(lài)管理,也是現(xiàn)在推薦的做法。啟用 Go Modules 需要顯示設(shè)置一個(gè)環(huán)境變量 GO111MODULE=on。
利用 go mod init 命令在當(dāng)前目錄初始化一個(gè) module,如下。

go mod init example.com/test

2. Module Path

其中 example.com/test 叫做 moudle path ,一般采用“代碼倉(cāng)庫(kù) + module name” 的方式定義。例如 github.com/go-sql-driver/mysq go 會(huì)去 github 倉(cāng)庫(kù)去獲取這個(gè) module。

3. go.mod 和 go.sum

在 module 主目錄下主要會(huì)有兩個(gè)文件和 module 相關(guān):

  • go.mod:它用來(lái)標(biāo)記一個(gè) module 和它的依賴(lài)庫(kù)以及依賴(lài)庫(kù)的版本。
  • go.sum:記錄了所有依賴(lài)的 module 的校驗(yàn)信息,為了防止下載的 module 被惡意篡改,主要用于安全校驗(yàn)。

3. Go 的幾個(gè)命令

1. go run

可以快速的運(yùn)行某個(gè) go 文件,go 在背后會(huì)在臨時(shí)的目錄編譯并且執(zhí)行,在程序退出后清除臨時(shí)目錄。

2. go build

編譯 main 包,并在當(dāng)前或者指定的目錄生成可執(zhí)行文件,非 main 包一般不會(huì)生成任何文件。

3. go install

編譯 go 文件,將生成的可執(zhí)行文件或者庫(kù)文件放到 GOPATH 下的 bin 或者 pkg 文件夾下。

到此這篇關(guān)于GO 語(yǔ)言工作環(huán)境的基礎(chǔ)知識(shí)的文章就介紹到這了,更多相關(guān)GO 語(yǔ)言基礎(chǔ)知識(shí)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 淺析Go語(yǔ)言的數(shù)據(jù)類(lèi)型及數(shù)組

    淺析Go語(yǔ)言的數(shù)據(jù)類(lèi)型及數(shù)組

    Golang是一種靜態(tài)強(qiáng)類(lèi)型、編譯型語(yǔ)言。Go?語(yǔ)言語(yǔ)法與?C?相近,但功能上有:內(nèi)存安全,GC(垃圾回收),結(jié)構(gòu)形態(tài)及?CSP-style?并發(fā)計(jì)算。本文主要和大家聊聊Go語(yǔ)言的數(shù)據(jù)類(lèi)型及數(shù)組,希望對(duì)大家有所幫助
    2022-11-11
  • 安裝GoLang環(huán)境和開(kāi)發(fā)工具的圖文教程

    安裝GoLang環(huán)境和開(kāi)發(fā)工具的圖文教程

    Go是一門(mén)由Google開(kāi)發(fā)的編程語(yǔ)言,GoLand的安裝非常簡(jiǎn)單,本文主要介紹了安裝GoLang環(huán)境和開(kāi)發(fā)工具的圖文教程,具有一定的參考價(jià)值,感興趣的可以了解一下
    2023-09-09
  • 詳解如何在golang項(xiàng)目開(kāi)發(fā)中創(chuàng)建自己的Module

    詳解如何在golang項(xiàng)目開(kāi)發(fā)中創(chuàng)建自己的Module

    既然我們使用了很多開(kāi)源的 module為我們的日常開(kāi)發(fā)提供了很多的便捷性,那我們?cè)撊绾螌?shí)現(xiàn)自己的 module 來(lái)提供給團(tuán)隊(duì)中使用,接下小編就給大家介紹一下在golang項(xiàng)目開(kāi)發(fā)如何創(chuàng)建自己的Module,需要的朋友可以參考下
    2023-09-09
  • golang動(dòng)態(tài)庫(kù)(so)生成與使用方法教程

    golang動(dòng)態(tài)庫(kù)(so)生成與使用方法教程

    這篇文章主要給大家介紹了關(guān)于golang動(dòng)態(tài)庫(kù)(so)生成與使用的相關(guān)資料,我們平時(shí)使用的動(dòng)態(tài)庫(kù)都是由c/c++開(kāi)發(fā)最后生成的.so文件,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-07-07
  • Go語(yǔ)言學(xué)習(xí)otns示例分析

    Go語(yǔ)言學(xué)習(xí)otns示例分析

    這篇文章主要為大家介紹了Go語(yǔ)言學(xué)習(xí)otns示例分析詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-04-04
  • Gin使用swagger生成接口文檔的代碼示例

    Gin使用swagger生成接口文檔的代碼示例

    Swagger 是一個(gè)規(guī)范和完整的框架,用于生成、描述、調(diào)用和可視化 RESTful Web 服務(wù),它使用 YAML 或 JSON 格式來(lái)定義 API 的結(jié)構(gòu),本文給大家介紹了Gin使用swagger生成接口文檔的代碼示例,需要的朋友可以參考下
    2024-06-06
  • Go語(yǔ)言基礎(chǔ)學(xué)習(xí)之map的示例詳解

    Go語(yǔ)言基礎(chǔ)學(xué)習(xí)之map的示例詳解

    哈希表是常見(jiàn)的數(shù)據(jù)結(jié)構(gòu),有的語(yǔ)言會(huì)將哈希稱(chēng)作字典或者映射,在Go中,哈希就是常見(jiàn)的數(shù)據(jù)類(lèi)型map,本文就來(lái)聊聊Golang中map的相關(guān)知識(shí)吧
    2023-04-04
  • Go語(yǔ)言并發(fā)編程基礎(chǔ)上下文概念詳解

    Go語(yǔ)言并發(fā)編程基礎(chǔ)上下文概念詳解

    這篇文章主要為大家介紹了Go語(yǔ)言并發(fā)編程基礎(chǔ)上下文示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-08-08
  • Golang?動(dòng)態(tài)腳本調(diào)研詳解

    Golang?動(dòng)態(tài)腳本調(diào)研詳解

    這篇文章主要為大家介紹了Golang?動(dòng)態(tài)腳本調(diào)研詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-09-09
  • Go-ethereum?解析ethersjs中產(chǎn)生的簽名信息思路詳解

    Go-ethereum?解析ethersjs中產(chǎn)生的簽名信息思路詳解

    這篇文章主要介紹了Go-ethereum?解析ethersjs中產(chǎn)生的簽名信息,我們解析簽名的需要知道,簽名的消息,簽名,和公鑰,按照這個(gè)思路,我們可以通過(guò)ethers實(shí)現(xiàn)消息的簽名,也可以通過(guò)go-ethereum實(shí)現(xiàn),需要的朋友可以參考下
    2022-08-08

最新評(píng)論

垣曲县| 随州市| 黄梅县| 红桥区| 龙岩市| 阿巴嘎旗| 阿拉善右旗| 嘉黎县| 滕州市| 于田县| 象山县| 广西| 盐亭县| 会东县| 肇庆市| 开远市| 麻城市| 林周县| 肃宁县| 神农架林区| 米泉市| 南开区| 澄迈县| 壤塘县| 肇庆市| 南宫市| 龙井市| 米林县| 安义县| 灵川县| 安溪县| 昌宁县| 沐川县| 绍兴市| 瓮安县| 汝阳县| 惠水县| 通渭县| 塘沽区| 海原县| 桓仁|