站長資訊網
        最全最豐富的資訊網站

        go語言中自定義包的方法

        go語言中自定義包的方法

        包是函數和數據的集合,用 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")

        贊(0)
        分享到: 更多 (0)
        網站地圖   滬ICP備18035694號-2    滬公網安備31011702889846號
        主站蜘蛛池模板: 国产专区日韩精品欧美色| 久久久久国产精品麻豆AR影院| 精品无码久久久久久久久久| 久久精品女人天堂AV麻| 国产精品久久网| 人人妻人人澡人人爽人人精品| 精品精品国产高清a毛片牛牛| 国产精品自在线拍国产手机版| 自拍偷自拍亚洲精品第1页| 国产成人精品高清不卡在线| 亚洲精品无码激情AV| 国产精品夜色视频一级区| 日韩精品无码免费一区二区三区| 国产一成人精品福利网站| 无码8090精品久久一区| 国产三级精品三级在线观看| 91麻精品国产91久久久久| 青青草国产精品久久久久| 国内精品免费视频精选在线观看| 久久精品夜色噜噜亚洲A∨| 国产福利91精品一区二区| 久久亚洲精品无码AV红樱桃| 国产精品伊人久久伊人电影| 久久久久久久久无码精品亚洲日韩 | 久久久久99精品成人片直播| 91精品国产人成网站| 精品一卡2卡三卡4卡免费视频 | 久久精品国产99国产精偷| 国产成人精品免费视频网页大全| 亚洲精品动漫人成3d在线| 香蕉依依精品视频在线播放 | 国产精品福利在线观看免费不卡| 亚洲AV永久无码精品水牛影视| 国产精品高清2021在线| 第一福利永久视频精品| 亚洲精品视频在线观看你懂的| 久久久精品免费国产四虎| 欧美成人精品一区二区三区| 亚洲精品免费在线观看| 91久久精品无码一区二区毛片| 精品无码国产一区二区三区51安|