您好,登錄后才能下訂單哦!
今天就跟大家聊聊有關怎么在golang中使用import自定義包,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結了以下內容,希望大家根據這篇文章可以有所收獲。
golang可以做服務器端開發,但golang很適合做日志處理、數據打包、虛擬機處理、數據庫代理等工作。在網絡編程方面,它還廣泛應用于web應用、API應用等領域。
剛開始接觸go時,以為import自定義包與Java工程類似,在非GOPATH的路徑中新建了一個go項目HelloGo,如下:
接下來,利用beego的bee工具新建了另一個項目helloapi,如下:
現在,想在helloapi項目中調用HelloGo項目的函數,通過import引入“HelloGo”,編輯器中一直提示無法引用,即使把HelloGo添加到左下角的GOPATH[helloapi]中,也沒有效果。
具體如下:
問題出在HelloGo項目的路徑上,因為其不在系統定義的GOPATH路徑下,查看下系統定義的GOPATH:
localhost:helloapi loongshawn$ echo $GOPATH /Users/loongshawn/Documents/go/workspace localhost:helloapi loongshawn$
因此,要想引入自定義的包,需要自定義包的路徑為GOPATH路徑中。
在工程A中創建方法Say,如下代碼:
package routers import ( "fmt" ) func Say() { fmt.Println("引用helloweb項目的Say方法") }
在工程B中引入工程A,并調用A工程中的Say函數,同時啟動工程A,Console輸出結果如下:
輸出結果顯示,調用Say函數正常。不知大家注意到被調用函數Say的寫法沒有,函數名首字母是大寫的,如果把其換成小寫行不行?
在A工程的router.go中新增了print函數,試一下:
func print() { fmt.Println("引用helloweb項目的print方法") }
B工程中重新引用A工程的print方法,但是引用不了。因此,在寫可調用方法時,方法名首字母需要大寫,這是需要注意的一點。
由于接觸Go不久,許多地方理解不一定到位,如有紕漏之處,請各位同學幫忙指出來,謝謝!
補充:GoLang 自定義包總結
大概總結一下 GoLang 自定義包,并不是需要發布的包,只是一次在代碼工作路徑下調用自定義包的一個嘗試。
今天踩坑就是,以為 import 的時候要填寫文件夾里面的 package 的名稱,比如之前我是這么寫的:
import "./pack/p"
這樣無法通過編譯,這就是本文的由來了
. ├── 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 的方法運行或編譯,都是可以通過的。
看完上述內容,你們對怎么在golang中使用import自定義包有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注億速云行業資訊頻道,感謝大家的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。