Open
Description
Go简明手册——Go创建并使用本地宝
[toc]
包
> 包是各种类型和函数的集合。在包中,如果标示符(类型名称,函数名称,方法名称)的首字母是大写,那这些标示符是可以被导出的,也就是说可以在包以外直接使用。
$GOPATH
:环境变量(指向一个或多个目录),以及其子目录 src
目录的,当我们使用 import
关键字导入包的时候,Go 语言会在 $GOPATH
和 GOROOT
目录中搜索包。
创建并使用自定义包
> 源文件
> 注意点:
> 1. go文件名和文件夹名并没有关系,文件名可以是任意的,文件定义的package
才是标识
> 2. 方法定义一定得是首字母大写
> 3. 自定义包不能和导入处于同级目录,必须建一个文件夹存放自定义包
先看一下目录结构,以下示例是导入两包,一个是add
,一个是simpleinterest
│ go.mod
│ main.go
│ README.md
│
├─add
│ add.go
│
└─simpleinterest
simpleinterest.go
步骤说明
1 创建package文件夹
mkdir package
go mod init packagetest
执行上述命令后,会生成 go.mod
文件,内容如下所示
module packageTest
go 1.20
2 创建各个文件
main.go
package main
import (
"fmt"
"log"
"packageTest/add" //导入 add 包 这个包必须放在$GOPATH下才可
"packageTest/simpleinterest"
)
var p, r, t = 5000.0, 10.0, 1.0
/*
* init function to check if p, r and t are greater than zero
*/
func init() {
println("Main package initialized")
if p < 0 {
log.Fatal("Principal is less than zero")
}
if r &
73DC
lt; 0 {
log.Fatal("Rate of interest is less than zero")
}
if t < 0 {
log.Fatal("Duration is less than zero")
}
}
func main() {
c := add.Add(1, 2) //调用 add 包中的 add 函数
si := simpleinterest.Calculate(p, r, t) // 调用 simpleinterest 包的 Calculate 函数
fmt.Println(c)
fmt.Println("Simple interest is", si)
}
simpleinterest/simpleinterest.go
package simpleinterest
import "fmt"
/*
* init function added
*/
func init() {
fmt.Println("Simple interest package initialized")
}
//Calculate calculates and returns the simple interest for principal p, rate of interest r for time duration t years
func Calculate(p float64, r float64, t float64) float64 {
interest := p * (r / 100) * t
return interest
}
add/add.go
package add
func Add(a int, b int) (num int) {
return a + b
}
3 执行并调试
输出如下所示
Main package initialized
Simple interest package initialized
3
Simple interest is 500
blog link Go简明手册——Go创建并使用本地宝