亚洲最大看欧美片,亚洲图揄拍自拍另类图片,欧美精品v国产精品v呦,日本在线精品视频免费

  • 站長(zhǎng)資訊網(wǎng)
    最全最豐富的資訊網(wǎng)站

    go語(yǔ)言中包導(dǎo)入的一些問(wèn)題

    go語(yǔ)言中包導(dǎo)入的一些問(wèn)題

    import

    Go 使用包(package)作為基本單元來(lái)組織源代碼,所有語(yǔ)法可見(jiàn)性均定義在 package 這個(gè)級(jí)別。同一 package 下面,可以有非常多的不同文件,只要每個(gè)文件屬于相同的 package name。

    每個(gè)源碼文件的第一行必定要通過(guò)如下語(yǔ)法定義屬于哪個(gè) package,

    package xxx

    然后就是導(dǎo)入本源碼文件所使用的標(biāo)準(zhǔn)包或第三方包,即

    import (     "a/b/c"     "fmt" )

    標(biāo)準(zhǔn)庫(kù)會(huì)從 GO 的安裝目錄下查找,第三方庫(kù)會(huì)從開(kāi)發(fā)者定義的 $GOPATH 下查找。當(dāng)都找不到時(shí),編譯器就會(huì)報(bào)錯(cuò)。在使用第三方包的時(shí)候,當(dāng)源碼和 .a 均已安裝的情況下,編譯器鏈接的是源碼。

    注意: 上面語(yǔ)句中 a/b/c 最后的 c 為目錄名,不是 package name。

    在對(duì)文件中的方法進(jìn)行調(diào)用時(shí),使用如下格式:

    package.Methodxxx()

    同一文件夾下的多個(gè)文件的 package 一般定義為該文件夾的名字,但是也有例外,比如上面的栗子中,c 文件下的所有文件的 package 定義為 fux,那么在調(diào)用這個(gè)文件夾下文件的方法時(shí),只能使用 fux.Methodxxx(),而不是 c..Methodxxx()

    一個(gè)非main包在編譯后會(huì)生成一個(gè).a文件(在臨時(shí)目錄下生成,除非使用go install安裝到 $GOROOT$GOPATH下,否則你看不到 .a),用于后續(xù)可執(zhí)行程序鏈接使用。

    vendor

    Go 在 1.5 的版本加入的 vendor 的支持來(lái)做包管理。1.5 版本要設(shè)置 GO15VENDOREXPERIMENT="1" 來(lái)支持這個(gè)特性,1.6版本將其作為默認(rèn)參數(shù)配置。下面對(duì)于包含 vendor 目錄的包導(dǎo)入路徑規(guī)則大致如下。

    ├── d     ├── mypkg     |     └── main.go     └── vendor           └── q               ├── q.go

    當(dāng)上述目錄結(jié)構(gòu),在 main.go 中 import q時(shí),后首先從 vendor 目錄下查找,若找不到,會(huì)從 $GOPATH 目錄下查找,再找不到的話,編譯器就報(bào)錯(cuò)了。

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