七、包

 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     执行外部命令

 

posted on 2013-01-31 23:21  liubiaoren  阅读(134)  评论(0)    收藏  举报