七、包
1 // sqrt.go 2 package even 3 4 func Even(i int) bool { // 可导出函数 5 return i%2 == 0 6 } 7 8 func odd(i int) bool { //私有函数 9 return i%2 == 1 10 }
1 package main 2 3 import ( 4 "even" 5 "fmt" 6 ) 7 8 func main() { 9 fmt.Println(even.Even(23)) //不能调用odd,因为第一字母小写是私有 10 }
包的测试
bin 都是生成的exe文件
pkg - window_386 编译生成的文件even.a
src - even 文件有even.go 和 even_test.go 用于测试使用
1 // even.go 2 package even 3 4 func Even(i int) bool { // 可导出函数 5 return i%2 == 0 6 } 7 8 func odd(i int) bool { //私有函数 9 return i%2 == 1 10 }
1 //even_test.go 2 package even 3 4 import "testing" 5 6 func TestEven(t *testing.T) { 7 if !Even(2) { 8 t.Log("23245!") 9 t.Fail() 10 } 11 12 }
go test 结果:
PASS
ok even 0.766s
常用的包
fmt
%v 默认格式值
%#v GO样式的值表达
%T 带有类型的GO样式的值表达
io 提供了原始I/O操作界面
bufio 缓冲的I/O
srot 排序功能
srtconv 将字符串转换成基本数据类型,或者从基本数据类型转换为字符串的功能
os 提供了与平台无关的操作系统功能接口
sync 基本的同步原语
flag 命令行解析
encoding/json 编码与解码
test/template 数据驱动的模版,用于生成文本输出
net/http 实现了HTTP请求、响应和URL解析,并且提供了可扩展的HTTP服务和基本的HTTP客户端
unsafe 不安全的操作
reflect 反射
os/exec 执行外部命令
浙公网安备 33010602011771号