国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

腳本之家,腳本語言編程技術及教程分享平臺!
分類導航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服務器之家 - 腳本之家 - Golang - Go語言的GOPATH與工作目錄詳解

Go語言的GOPATH與工作目錄詳解

2020-04-08 19:30junjie Golang

這篇文章主要介紹了Go語言的GOPATH與工作目錄詳解,本文詳細講解了GOPATH設置、應用目錄結構、編譯應用等內容,需要的朋友可以參考下

GOPATH設置

go 命令依賴一個重要的環境變量:$GOPATH1

(注:這個不是Go安裝目錄。下面以筆者的工作目錄為說明,請替換自己機器上的工作目錄。)

在類似 Unix 環境大概這樣設置:

 

復制代碼 代碼如下:

    export GOPATH=/home/apple/mygo

 

為了方便,應該把新建以上文件夾,并且把以上一行加入到 .bashrc 或者 .zshrc 或者自己的 sh 的配置文件中。

Windows 設置如下,新建一個環境變量名稱叫做GOPATH:

 

復制代碼 代碼如下:

    GOPATH=c:\mygo

 

GOPATH允許多個目錄,當有多個目錄時,請注意分隔符,多個目錄的時候Windows是分號,Linux系統是冒號,當有多個GOPATH時,默認會將go get的內容放在第一個目錄下

以上 $GOPATH 目錄約定有三個子目錄:

1.src 存放源代碼(比如:.go .c .h .s等)
2.pkg 編譯后生成的文件(比如:.a)
3.bin 編譯后生成的可執行文件(為了方便,可以把此目錄加入到 $PATH 變量中,如果有多個gopath,那么使用${GOPATH//://bin:}/bin添加所有的bin目錄)

以后我所有的例子都是以mygo作為我的gopath目錄

應用目錄結構

建立包和目錄:$GOPATH/src/mymath/sqrt.go(包名:"mymath")

以后自己新建應用或者一個代碼包都是在src目錄下新建一個文件夾,文件夾名稱一般是代碼包名稱,當然也允許多級目錄,例如在src下面新建了目錄$GOPATH/src/github.com/astaxie/beedb 那么這個包路徑就是“github.com/astaxie/beedb”,包名稱是最后一個目錄beedb

執行如下代碼:

 

復制代碼 代碼如下:

cd $GOPATH/src
    mkdir mymath

 

新建文件sqrt.go,內容如下:

 

復制代碼 代碼如下:


 // $GOPATH/src/mymath/sqrt.go源碼如下:
    package mymath

 

    func Sqrt(x float64) float64 {
        z := 0.0
        for i := 0; i < 1000; i++ {
            z -= (z*z - x) / (2 * x)
        }
        return z
    }

 

這樣我的應用包目錄和代碼已經新建完畢,注意:一般建議package的名稱和目錄名保持一致

編譯應用

上面我們已經建立了自己的應用包,如何進行編譯安裝呢?有兩種方式可以進行安裝

1、只要進入對應的應用包目錄,然后執行go install,就可以安裝了
2、在任意的目錄執行如下代碼go install mymath

安裝完之后,我們可以進入如下目錄:

 

復制代碼 代碼如下:

 cd $GOPATH/pkg/${GOOS}_${GOARCH}
    //可以看到如下文件
    mymath.a

 

這個.a文件是應用包,那么我們如何進行調用呢?

接下來我們新建一個應用程序來調用

新建應用包mathapp:

復制代碼 代碼如下:

 cd $GOPATH/src
    mkdir mathapp
    cd mathapp
    vim main.go

 

// $GOPATH/src/mathapp/main.go源碼:

復制代碼 代碼如下:


    package main

 

    import (
          "mymath"
          "fmt"
    )

    func main() {
          fmt.Printf("Hello, world.  Sqrt(2) = %v\n", mymath.Sqrt(2))
    }

 

如何編譯程序呢?進入該應用目錄,然后執行go build,那么在該目錄下面會生成一個mathapp的可執行文件

 

復制代碼 代碼如下:

    ./mathapp

 

輸出如下內容

 

復制代碼 代碼如下:

    Hello, world.  Sqrt(2) = 1.414213562373095

 

如何安裝該應用,進入該目錄執行go install,那么在$GOPATH/bin/下增加了一個可執行文件mathapp,這樣可以在命令行輸入如下命令就可以執行

 

復制代碼 代碼如下:

mathapp

 

也是輸出如下內容

 

復制代碼 代碼如下:

Hello, world.  Sqrt(2) = 1.414213562373095

 

獲取遠程包

go語言有一個獲取遠程包的工具就是go get,目前go get支持多數開源社區(例如:github、googlecode、bitbucket、Launchpad)

 

復制代碼 代碼如下:

go get github.com/astaxie/beedb

 

go get -u 參數可以自動更新包,而且當go get的時候會自動獲取該包依賴的其他第三方包
通過這個命令可以獲取相應的源碼,對應的開源平臺采用不同的源碼控制工具,例如github采用git、googlecode采用hg,所以要想獲取這些源碼,必須先安裝相應的源碼控制工具

通過上面獲取的代碼在我們本地的源碼相應的代碼結構如下:

 

復制代碼 代碼如下:

$GOPATH
  src
   |--github.com
          |-astaxie
              |-beedb
   pkg
    |--相應平臺
         |-github.com
               |--astaxie
                    |beedb.a

 

go get本質上可以理解為首先第一步是通過源碼工具clone代碼到src下面,然后執行go install

在代碼中如何使用遠程包,很簡單的就是和使用本地包一樣,只要在開頭import相應的路徑就可以

復制代碼 代碼如下:

import "github.com/astaxie/beedb"

 

程序的整體結構

通過上面建立的我本地的mygo的目錄結構如下所示

復制代碼 代碼如下:

bin/
    mathapp
pkg/
    平臺名/ 如:darwin_amd64、linux_amd64
         mymath.a
         github.com/
              astaxie/
                   beedb.a
src/
    mathapp
          main.go
      mymath/
          sqrt.go
      github.com/
           astaxie/
                beedb/
                    beedb.go
                    util.go


從上面的結構我們可以很清晰的看到,bin目錄下面存的是編譯之后可執行的文件,pkg下面存放的是函數包,src下面保存的是應用源代碼。

 

[1] Windows系統中環境變量的形式為%GOPATH%,本書主要使用Unix形式,Windows用戶請自行替換。

延伸 · 閱讀

精彩推薦
  • Golanggolang如何使用struct的tag屬性的詳細介紹

    golang如何使用struct的tag屬性的詳細介紹

    這篇文章主要介紹了golang如何使用struct的tag屬性的詳細介紹,從例子說起,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看...

    Go語言中文網11352020-05-21
  • Golanggolang json.Marshal 特殊html字符被轉義的解決方法

    golang json.Marshal 特殊html字符被轉義的解決方法

    今天小編就為大家分享一篇golang json.Marshal 特殊html字符被轉義的解決方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧 ...

    李浩的life12792020-05-27
  • GolangGolang通脈之數據類型詳情

    Golang通脈之數據類型詳情

    這篇文章主要介紹了Golang通脈之數據類型,在編程語言中標識符就是定義的具有某種意義的詞,比如變量名、常量名、函數名等等,Go語言中標識符允許由...

    4272021-11-24
  • Golanggo語言制作端口掃描器

    go語言制作端口掃描器

    本文給大家分享的是使用go語言編寫的TCP端口掃描器,可以選擇IP范圍,掃描的端口,以及多線程,有需要的小伙伴可以參考下。 ...

    腳本之家3642020-04-25
  • Golanggolang的httpserver優雅重啟方法詳解

    golang的httpserver優雅重啟方法詳解

    這篇文章主要給大家介紹了關于golang的httpserver優雅重啟的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,...

    helight2992020-05-14
  • GolangGolang中Bit數組的實現方式

    Golang中Bit數組的實現方式

    這篇文章主要介紹了Golang中Bit數組的實現方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧...

    天易獨尊11682021-06-09
  • Golanggo日志系統logrus顯示文件和行號的操作

    go日志系統logrus顯示文件和行號的操作

    這篇文章主要介紹了go日志系統logrus顯示文件和行號的操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧...

    SmallQinYan12302021-02-02
  • Golanggolang 通過ssh代理連接mysql的操作

    golang 通過ssh代理連接mysql的操作

    這篇文章主要介紹了golang 通過ssh代理連接mysql的操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧...

    a165861639710342021-03-08
主站蜘蛛池模板: 一级片网 | 久章操 | 日韩精品一区二区在线观看 | 欧美一区二区小视频 | 亚洲lesbianxxxxhd| 日韩精品视频在线 | 久久午夜剧场 | 亚洲天堂一区 | 亚洲精品久久久久久久久久久 | 日韩精品一二三区 | 午夜国产精品视频 | 欧美黄色成人 | 欧美另类专区 | 亚洲天堂一区二区 | 一级黄色在线 | 黄色国产视频 | 国产一区二区三区欧美 | 国产精品久久国产精品 | av网站免费在线观看 | 欧洲一区在线 | 欧美在线1| 黄色在线免费观看 | 黄色网页在线观看 | 精品国产乱码久久久久久丨区2区 | 亚洲欧美另类久久久精品2019 | 亚洲第一成人在线视频 | 国产99久久久精品视频 | 国产欧美精品一区二区三区 | 亚洲国产一区二区三区精品 | 天天操人人干 | 欧美 日韩 国产 在线 | 亚洲精品视频一区二区三区 | 精品日韩 | 久久久久久久国产精品免费播放 | 亚洲久久久久久 | 欧美在线网 | 亚洲精品国产a久久久久久 99热少妇 | 91在线看| 黄色一级大片免费看 | 精品九九| 麻豆产精国品免费入口 |