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"
)*/
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章