Go語言 包 package

package include

//包的概念
//go 語言是使用包來組織源代碼的 包是多個go源碼的集合 是一種高級的代碼複用方案
// 任何源代碼文件必須屬於某個包
//同時源碼文件的第一行有效代碼必須是package pacakgeName 語句,通過該語句聲明自己所在的包

//go語言的包藉助了目錄樹的組織形式 一般包的名稱就是目錄的名稱

// 包可以定義在很深的目錄中 包名的定義是不包括目錄路徑的  但是包在引用時一般使用全路徑引用
//比如在 gopath/src/a/b 下定義了一個包C 在包c的源碼中只需要聲明 package c
// 而不用聲明爲 package a/b/c  但是在導入包時 需要帶上路徑 例如 import "a/b/c"

//包的習慣用法
// 1.包名一般是小寫
// 2.包名一般要和所在的目錄同名  也可以不同 但是建議不要調皮
// 3.包一般使用域名作爲目錄名稱 這樣可以保證包名的唯一性 例如 github 項目的包一般都會放在 GOPATH/src/github.com/ 下
// 4.包名爲 main的包爲應用程序的入口包 編譯不包含main 包的源碼文件時不會的得到可執行文件
// 5.一個文件夾下的所有源碼文件只能屬於同一個包,同樣屬於同一個包的源碼文件不能放在多個文件夾下

// 包的導入
// import "包的路徑"

//單行導入
// import "包1的路徑"
// import "包2的路徑"

// 多行導入
/*
 import (
    "包 1 的路徑"
    "包 2 的路徑"
  )
*/

// 包的導入路徑
// 全局路徑導入
// goroot/src/ 或者 gopath/src/ 後面的存放路徑

//import "lab/test"
//test 包是自定義的包,其源碼位於GOPATH/src/lab/test 目錄下;

//import "database/sql/driver"
//driver 包的源碼位於GOROOT/src/database/sql/driver 目錄下;

//import "database/sql"
//sql 包的源碼位於GOROOT/src/database/sql 目錄下

//相對路徑
//相對路徑只能用於導入GOPATH 下的包,標準包的導入只能使用全路徑導入
//例如包 a 的所在路徑是GOPATH/src/lab/a,包 b 的所在路徑爲GOPATH/src/lab/b,如果在包 b 中導入包 a ,則可以使用相對路徑導入方式。示例如下:

//建議使用全路徑導入

//包的引用方式
//有四種方式

//標準方式
//import "fmt"
//此時可以用fmt.作爲前綴來使用 fmt 包中的方法,這是常用的一種方式。

//自定義別名引用格式
// import F "fmt"

//省略引用格式
// import . "fmt"

//匿名引用格式
// import _ "fmt"
//在引用某個包時 如果只是希望執行包初始化的init函數 而不使用包內部的數據時可以使用匿名引用格式

//使用標準格式引用包,但是代碼中卻沒有使用包,編譯器會報錯。
// 如果包中有 init 初始化函數,則通過import _ "包的路徑" 這種方式引用包,僅執行包的初始化函數,即使包沒有 init 初始化函數,也不會引發編譯器報錯
/*import (
   _ "database/sql"
   "fmt"
)*/
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章