5.Golang中的包(package)
作者: thtomatic 分类: Golang 评论: [ 0 ] 条 浏览: [ 18 ] 次
在做项目中,要处理大量的代码,这些代码一般放置在不同的代码文件中,为了便于管理这些代码文件,可以将功能相关的代码文件放到一个包(package)中
一、声明包
GO语言中使用package语句声明包,语法格式如下:
package 包名
声明包需要注意如下问题
1.package语句应该放在代码文件的第一行
2.在每个代码文件中只能有一个包声明语句
二、导入包
为了能够使用一个保重的代码元素,需要使用import语句导入包,import语句应位于package语句之后,语法格式如下
import (
包路径1
包路径2
包路径3
.........
)
import语句的括号中指定1~n个包路径。如果只导入一个包,则小括号"()"可以省略
三、自定义包
包本质上是一个文件夹,例如在demo文件夹下创建pkg1和pkg2两个包,其中每个包包含一个hello.go文件
pkg1包中hello.go文件代码如下
package pkg1 //声明当前文件所在的包是pkg1 var Money = 2000 //声明变量,为了在其他包中访问这个变量,需要将其设置为公有的,这需要将首字母大写 var xyz = 100 //由于其首字母未大写,因此此变量是私有的 func Add(a, b int) int { //声明Add函数,为了在文件外部访问,需要将其首字母大写 return a + b } func sum(a, b int) int { //声明此函数是私有的 return a + b }
pkg2包中的hello.go文件代码如下
package pkg2 var Money = 100
在main.go中使用pkg1包和pkg2包中的代码元素,代码如下
package main
import (
"fmt"
"gin_web/demo03/pkg1"
"gin_web/demo03/pkg2"
)
func main() {
var str1 = "Hello World"
fmt.Println(str1)
fmt.Println(pkg1.Money)
fmt.Println(pkg2.Money)
var x, y = 1, 2
fmt.Printf("%d + %d = %d\n", x, y, pkg1.Add(x, y))
}
四、为包提供别名
为了防止导入的包名发生冲突,可以在导入包时为其提供一个别名,语法如下:
import 包别名 包路径
代码如下:
package main import ( "fmt" pk1 "gin_web/demo03/pkg1" pk2 "gin_web/demo03/pkg2" ) func main() { var str1 = "Hello World" fmt.Println(str1) fmt.Println(pk1.Money) fmt.Println(pk2.Money) var x, y = 1, 2 fmt.Printf("%d + %d = %d\n", x, y, pk1.Add(x, y)) }
五、匿名导入
在Go语言中导入一个包而不使用它,则会发生"imported and not used"编译错误,这种情况下可采用匿名导入,就是用下划线"_"作为包的别名
代码如下:
package main
import (
"fmt"
pk1 "gin_web/demo03/pkg1"
pk2 "gin_web/demo03/pkg2"
_ "math/rand"
)
func main() {
var str1 = "Hello World"
fmt.Println(str1)
fmt.Println(pk1.Money)
fmt.Println(pk2.Money)
var x, y = 1, 2
fmt.Printf("%d + %d = %d\n", x, y, pk1.Add(x, y))
}
版权所有:《thtomatic》 => 《5.Golang中的包(package)》
本文地址:https://ask.mykeji.net/golang/275.html
除非注明,文章均为 《简单记录》 原创,欢迎转载!转载请注明本文地址,谢谢。
发表评论: