欧美亚洲中文,在线国自产视频,欧洲一区在线观看视频,亚洲综合中文字幕在线观看

      1. <dfn id="rfwes"></dfn>
          <object id="rfwes"></object>
        1. 站長(zhǎng)資訊網(wǎng)
          最全最豐富的資訊網(wǎng)站

          go語(yǔ)言中自定義包的方法

          go語(yǔ)言中自定義包的方法

          包是函數(shù)和數(shù)據(jù)的集合,用 package 關(guān)鍵字定義一個(gè)包。

          主要用于組織 Go 源代碼,提供了更好的可重用性與可讀性。由于包提供了代碼的封裝,因此使得 Go 應(yīng)用程序易于維護(hù)。

          下面創(chuàng)建一個(gè)自定義包的實(shí)例

          創(chuàng)建存放包的目錄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") }

          此處為了便于維護(hù),將包名和目錄名一致。

          新建demo.go調(diào)用自定義的包

          在$GOPATH/src/test 目錄下創(chuàng)建

          package main  import "pac"  func main() {     pac.Printstr("this") }

          運(yùn)行

          go run demo.go

          輸出 this is pac ,證明成功

          以上實(shí)例,引入文件demo.go和包文件pac.go不在同一目錄,不屬于同一個(gè)包。那么屬于同一個(gè)包,且在同一個(gè)目錄的兩個(gè)文件,是如何訪問(wèn)的,看下面例子。

          創(chuàng)建 pac2.go

          在$GOPATH/src/test/pac目錄下

          package pac  import "fmt"  func printstr2 (x string)  {     fmt.Println(x + " is pac2") }

          修改pac.go,讓pac.go調(diào)用pac2.go

          package pac  func Printstr(x string) {     //fmt.Println(x + " is pac")     printstr2(x) }

          運(yùn)行 demo.go

          go run demo.go

          輸出結(jié)果:this is pac2

          總結(jié)

          1、 如果項(xiàng)目目錄不在GOPATH環(huán)境變量設(shè)置的路徑里,需要把項(xiàng)目移到GOPATH路徑里,或者GOPATH中把項(xiàng)目路徑設(shè)置進(jìn)去;不然會(huì)報(bào):

          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語(yǔ)句使用的是文件夾的名稱。

          3、包文件的函數(shù)名第一個(gè)字母大寫,這樣外部可以調(diào)用。如果同一個(gè)package下,所有文件之間相互訪問(wèn),函數(shù)名第一個(gè)字母大寫小寫無(wú)所謂。

          4、main包,不能訪問(wèn)同目錄,同main包其他文件。

          5、文件夾的名稱和package的名稱不一定相同,為了便于維護(hù),建議一致。

          6、調(diào)用自定義包使用package名稱.函數(shù)名的方式,如上例:

          pac.Printstr("this")

          贊(0)
          分享到: 更多 (0)
          網(wǎng)站地圖   滬ICP備18035694號(hào)-2    滬公網(wǎng)安備31011702889846號(hào)