您好,登錄后才能下訂單哦!
golang中如何自定義包?這篇文章運用了實例代碼展示,代碼非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。
包是函數和數據的集合,用 package 關鍵字定義一個包。
主要用于組織 Go 源代碼,提供了更好的可重用性與可讀性。由于包提供了代碼的封裝,因此使得 Go 應用程序易于維護。
下面創建一個自定義包的實例
創建存放包的目錄pac
mkdir -p $GOPATH/src/test/pac cd $GOPATH/src/test/pac
新建文件pac.go
package pac import "fmt" func Printstr(x string) { fmt.Println(x + " is pac") }
此處為了便于維護,將包名和目錄名一致。
新建demo.go調用自定義的包
在$GOPATH/src/test 目錄下創建
package main import "pac" func main() { pac.Printstr("this") }
運行
go run demo.go
輸出 this is pac ,證明成功
以上實例,引入文件demo.go和包文件pac.go不在同一目錄,不屬于同一個包。那么屬于同一個包,且在同一個目錄的兩個文件,是如何訪問的,看下面例子。
創建 pac2.go
在$GOPATH/src/test/pac目錄下
package pac import "fmt" func printstr2 (x string) { fmt.Println(x + " is pac2") }
修改pac.go,讓pac.go調用pac2.go
package pac func Printstr(x string) { //fmt.Println(x + " is pac") printstr2(x) }
運行 demo.go
go run demo.go
輸出結果:this is pac2
總結
1、 如果項目目錄不在GOPATH環境變量設置的路徑里,需要把項目移到GOPATH路徑里,或者GOPATH中把項目路徑設置進去;不然會報:
demo.go:3:8: cannot find package "pac" in any of: /usr/lib/golang/src/pac (from $GOROOT) /home/go/src/pac (from $GOPATH)
2、import語句使用的是文件夾的名稱。
3、包文件的函數名第一個字母大寫,這樣外部可以調用。如果同一個package下,所有文件之間相互訪問,函數名第一個字母大寫小寫無所謂。
4、main包,不能訪問同目錄,同main包其他文件。
5、文件夾的名稱和package的名稱不一定相同,為了便于維護,建議一致。
6、調用自定義包使用package名稱.函數名的方式,如上例:
pac.Printstr("this")
到此為止, 關于golang中自定義包的方法有了一個基礎的認識, 但是對于具體的使用方法還是需要多加鞏固和練習,如果想了解更多相關內容,請關注億速云行業資訊。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。