浙江建设局网站,台州市环保局网站开发区,成都中小企业申请网站,dj网站开发建设除了使用标准库和第三方提供的包以外#xff0c;有时还需要自己创建包#xff0c;以提高程序代码的模块化程度和可复用性。
创建包目录。 项目自用的包#xff0c;在项目目录下创建包目录#xff0c;跨项目的公共包#xff0c;在[GOPATH]/src下创建包目录。
设置包名称。…除了使用标准库和第三方提供的包以外有时还需要自己创建包以提高程序代码的模块化程度和可复用性。
创建包目录。 项目自用的包在项目目录下创建包目录跨项目的公共包在[GOPATH]/src下创建包目录。
设置包名称。 在组成包的每个源文件的最开始处用package语句指定包的名称包名与包目录名最好一致。
导出标识符。 所有提供给包用户使用的类型、常量、变量、函数和方法名称首字母必须大写以示导出即公有/可访问。
运行包测试 在包内编写测试程序命名为[包名]_test.go 在包目录下执行启动测试命令go test
// 自己创建的温度计算包
// temp.go
// Package temp includes some functions about temperature
package temp// C2F °C-°F
func C2F(c float64) float64 { // 函数名首字母大写表示公有/可访问return c*9/5 32
}// F2C °F-°C
func F2C(f float64) float64 { // 函数名首字母大写表示公有/可访问return (f - 32) * 5 / 9
}
// temp_test.go
// 测试自己创建的温度计算包temp中的函数
package temp
import testing // 标准库testing测试框架
type tempTest struct {i float64 // 待计算值expected float64 // 期望值
}
var C2FTests []tempTest{{4.1, 39.38},{10, 50},{-10, 14},
}
var F2CTests []tempTest{{32, 0},{50, 10},{5, -15},
}
func TestC2F(t *testing.T) { // 测试函数必须以Test开头for _, tt : range C2FTests {actual : C2F(tt.i)if actual ! tt.expected {t.Errorf(expected %v, actual %v,tt.expected, actual)}}
}
func TestF2C(t *testing.T) {for _, tt : range F2CTests {actual : F2C(tt.i)if actual ! tt.expected {t.Errorf(expected %v, actual %v,tt.expected, actual)}}
}
// 打印输出
// PASS
// ok package/temp 0.391s