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"
)*/
go语言包冲突 go语言包名
转载本文章为转载内容,我们尊重原作者对文章享有的著作权。如有内容错误或侵权问题,欢迎原作者联系我们进行内容更正或删除文章。
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章