欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

golang import自定義包方式

 更新時間:2021年04月29日 10:49:08   作者:loongshawn  
這篇文章主要介紹了golang import自定義包方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧

1.初探

剛開始接觸go時,以為import自定義包與Java工程類似,在非GOPATH的路徑中新建了一個go項目HelloGo,如下:

這里寫圖片描述

接下來,利用beego的bee工具新建了另一個項目helloapi,如下:

這里寫圖片描述

現(xiàn)在,想在helloapi項目中調(diào)用HelloGo項目的函數(shù),通過import引入“HelloGo”,編輯器中一直提示無法引用,即使把HelloGo添加到左下角的GOPATH[helloapi]中,也沒有效果。

具體如下:

這里寫圖片描述

問題出在HelloGo項目的路徑上,因為其不在系統(tǒng)定義的GOPATH路徑下,查看下系統(tǒng)定義的GOPATH:

localhost:helloapi loongshawn$ echo $GOPATH
/Users/loongshawn/Documents/go/workspace
localhost:helloapi loongshawn$ 

因此,要想引入自定義的包,需要自定義包的路徑為GOPATH路徑中。

2.操作

在工程A中創(chuàng)建方法Say,如下代碼:

package routers
import (
    "fmt"
)

func Say() {
    fmt.Println("引用helloweb項目的Say方法")
}

在工程B中引入工程A,并調(diào)用A工程中的Say函數(shù),同時啟動工程A,Console輸出結(jié)果如下:

這里寫圖片描述

這里寫圖片描述

輸出結(jié)果顯示,調(diào)用Say函數(shù)正常。不知大家注意到被調(diào)用函數(shù)Say的寫法沒有,函數(shù)名首字母是大寫的,如果把其換成小寫行不行?

在A工程的router.go中新增了print函數(shù),試一下:

func print() {
    fmt.Println("引用helloweb項目的print方法")
}

這里寫圖片描述

B工程中重新引用A工程的print方法,但是引用不了。因此,在寫可調(diào)用方法時,方法名首字母需要大寫,這是需要注意的一點。

這里寫圖片描述

由于接觸Go不久,許多地方理解不一定到位,如有紕漏之處,請各位同學幫忙指出來,謝謝!

補充:GoLang 自定義包總結(jié)

大概總結(jié)一下 GoLang 自定義包,并不是需要發(fā)布的包,只是一次在代碼工作路徑下調(diào)用自定義包的一個嘗試。

今天踩坑就是,以為 import 的時候要填寫文件夾里面的 package 的名稱,比如之前我是這么寫的:

import "./pack/p"

這樣無法通過編譯,這就是本文的由來了

首先,工作的目錄結(jié)構(gòu)是這樣的:

.
├── main.go
└── pack
    └── test.go

1 directory, 2 files

其中,各個文件代碼為:

// main.go
package main
import (
        "fmt"
       "./pack"
)
func main() {
        s := p.Sayhello()
        fmt.Println(s)
}
// pack/test.go
package p
func Sayhello() string {
        return "Hello!"
}

在主目錄下通過 go run 或者 go build 的方法運行或編譯,都是可以通過的。

證明了以下幾點:

import 語句使用的是文件夾的名稱

上面的文件夾名字為 pack

文件夾名稱和 package 名稱不一定一樣

比如 pack 和 p

調(diào)用自定義包使用 package.函數(shù)名 的方式

p.xxx

自定義包的調(diào)用和文件名沒有關(guān)系。

test.go 和 p 沒有關(guān)系

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。如有錯誤或未考慮完全的地方,望不吝賜教。

相關(guān)文章

  • Go語言中Seeker接口的用法詳解

    Go語言中Seeker接口的用法詳解

    Go語言標準庫中的io包提供了一系列接口,用于處理各種I/O操作,其中Seeker接口在處理大文件或需要隨機訪問的場景中非常有用,本文將結(jié)合具體案例,詳細介紹Go語言中io包的Seeker接口的用法,需要的朋友可以參考下
    2024-10-10
  • go語言中五種字符串的拼接方式(小結(jié))

    go語言中五種字符串的拼接方式(小結(jié))

    字符串拼接在 golang 里面其實有很多種實現(xiàn),本文就詳細的介紹一下go語言中五種字符串的拼接方式以及性能,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-12-12
  • 實用的Go語言開發(fā)工具及使用示例

    實用的Go語言開發(fā)工具及使用示例

    這篇文章主要為大家介紹了實用的Go語言開發(fā)工具及使用示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-06-06
  • golang監(jiān)聽文件變化的實例

    golang監(jiān)聽文件變化的實例

    這篇文章主要介紹了golang監(jiān)聽文件變化的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-03-03
  • Go語言異常處理(Panic和recovering)用法詳解

    Go語言異常處理(Panic和recovering)用法詳解

    異常處理是程序健壯性的關(guān)鍵,往往開發(fā)人員的開發(fā)經(jīng)驗的多少從異常部分處理上就能得到體現(xiàn)。Go語言中沒有Try?Catch?Exception機制,但是提供了panic-and-recover機制,本文就來詳細講講他們的用法
    2022-07-07
  • Go get命令使用socket代理的方法

    Go get命令使用socket代理的方法

    由于某些不可描述的原因,國內(nèi)使用 go get 命令安裝某些包的時候會超時導致失敗,比如 net 包、 sys 包、 tools 包等。這篇文章給大家介紹go get 命令使用socket 代理的方法,感興趣的朋友一起看看吧
    2018-10-10
  • Golang httptest包測試使用教程

    Golang httptest包測試使用教程

    這篇文章主要介紹了Golang httptest包測試使用,httptest包的理念是,非常容易模擬http服務,也就是說模擬響應寫(response writer),提供給http處理器(handle),讓我們測試http服務端和客戶端很容易
    2023-03-03
  • 在Visual Studio Code中配置GO開發(fā)環(huán)境的詳細教程

    在Visual Studio Code中配置GO開發(fā)環(huán)境的詳細教程

    這篇文章主要介紹了在Visual Studio Code中配置GO開發(fā)環(huán)境的詳細教程,需要的朋友可以參考下
    2017-02-02
  • GO語io包的常用接口

    GO語io包的常用接口

    這篇文章主要介紹了GO語io包的常用接口,分析了GO語言接口的概念與功能,并實例列舉了幾個最常用的接口的用法,具有一定的參考借鑒價值,需要的朋友可以參考下
    2014-12-12
  • Go 語言 JSON 標準庫的使用

    Go 語言 JSON 標準庫的使用

    今天通過本文給大家介紹Go 語言 JSON 標準庫的使用小結(jié),包括序列化和反序列化的相關(guān)知識,感興趣的朋友跟隨小編一起看看吧
    2021-10-10

最新評論