91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Go語言的包管理

發布時間:2020-07-29 19:48:49 來源:網絡 閱讀:737 作者:小韓說課 欄目:編程語言

1 概述

Go 語言的源碼復用建立在包(package)基礎之上。包通過 package, import, GOPATH 操作完成。

2 main包

Go 語言的入口 main() 函數所在的包(package)叫 main,main 包想要引用別的代碼,需要import導入!

3 包定義,package

Go 語言的包與文件夾一一對應,同一個目錄下的所有.go文件的第一行添加 包定義,以標記該文件歸屬的包,演示語法:

package 包名

包需要滿足:

  • 一個目錄下的同級文件歸屬一個包。
  • 包名可以與其目錄不同名。
  • 包名為 main 的包為應用程序的入口包,其他包不能使用。

包可以嵌套定義,對應的就是嵌套目錄,但包名應該與所在的目錄一致,例如:

// 文件:foo/bar/tool.go中
package bar
// 可以被導出的函數
func FuncPublic() {
}
// 不可以被導出的函數
func funcPrivate() {
}

包中,通過標識符首字母是否大寫,來確定是否可以被導出。首字母大寫才可以被導出,視為 public 公共的資源。

4 導入包,import

要引用其他包,可以使用 import 關鍵字,可以單個導入或者批量導入,語法演示:

// 單個導入
import "package"
// 批量導入
import (
  "package1"
  "package2"
  )

導入時,可以為包定義別名,語法演示:

import (
  p1 "package1"
  p2 "package2"
  )
// 使用時
p1.Method()

以上測試請使用系統包測試。若需要導入自定義包,需要設置GOPATH環境變量。

4 GOPATH環境變量

import導入時,會從GO的安裝目錄(也就是GOROOT環境變量設置的目錄)和GOPATH環境變量設置的目錄中,檢索 src/package 來導入包。如果不存在,則導入失敗。
GOROOT,就是GO內置的包所在的位置。
GOPATH,就是我們自己定義的包的位置。

通常我們在開發Go項目時,調試或者編譯構建時,需要設置GOPATH指向我們的項目目錄,目錄中的src目錄中的包就可以被導入了:
例如,我么的項目目錄為: D:\projects\goProject,那么我么就需要將我們的源代碼放在 D:\projects\goProject\src 下,同時設置GOPATH為 D:\projects\goProject。設置GOPATH的方案有:

  • windows 通過 系統->系統信息->高級系統設置->環境變量 中完成設置。
  • windows 中通過 CMD 或者 powershell 也可以完成設置。通常是臨時有效的,CMD或者powershell關閉失效!
    CMD:
    set GOPATH=D:\projects\goProject
    set GOPATH 可以查看
    powershell:
    $env:GOPATH="D:\projects\goProject"
    $env:GOPATH 可以查看
  • linux 通過 /etc/profile 進行設置

5 init() 包初始化

可以在源碼中,定義 init() 函數。此函數會在包被導入時執行,例如如果是在 main 中導入包,包中存在 init(),那么 init() 中的代碼會在 main() 函數執行前執行,用于初始化包所需要的特定資料。例如:
包源碼:

src/userPackage/tool.go

package userPackage
import "fmt"
func init() {
  fmt.Println("tool init")
}

主函數源碼:

src/main.go

package main
import (
  "userPackage"
  )
func main() {
  fmt.Println("main run")
  // 使用userPackage
  userPackage.SomeFunc()
}

執行時,會先輸出 "tool init",再輸出 "main run"。

如果僅僅需要導入包時執行初始化操作,并不需要使用包內的其他函數,常量等資源。則可以在導入包時,匿名導入:

import (
  _ "userPackage"
  )

使用下劃線作為包的別名,會僅僅執行init()

完!
原文出自:小韓說課
微信關注:小韓說課
Go語言的包管理

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

吉水县| 永春县| 大关县| 册亨县| 博湖县| 巴青县| 云梦县| 淮北市| 辽阳市| 沙田区| 盱眙县| 湘潭市| 宾川县| 静海县| 南京市| 凤台县| 佳木斯市| 溆浦县| 广州市| 横山县| 泽普县| 耿马| 佛坪县| 冕宁县| 龙州县| 明溪县| 农安县| 苗栗市| 普定县| 辽中县| 蒲城县| 东山县| 甘泉县| 龙海市| 马龙县| 文成县| 南涧| 洛阳市| 甘德县| 东港市| 临沂市|