反射
反射类型对象(reflect.Type
)
typeOfA.Name()
:返回类型名,比较精确!
typeOfA.Kind()
:返回大品种,如指针啊还是变量嘞
var a int
typeOfA := reflect.TypeOf(a)
fmt.Println(typeOfA.Name(),typeOfA.Kind()) // int int
反射对象值
reflect.value(n interface{})
fmt.Println(reflect.ValueOf(a))
注:反射有时间了再了解,不是很重要!
编译
go build
:编译生成可执行文件
编译功能,默认以main包所在的包名为可运行文件名!
go build -o 命名
:当然可以-o
命名可运行文件名!
go run
:编译后运行
直接编译后运行,不会产生可运行文件!
go install
:添加文件之pkg、bin
go install
是再GOPATH策略下才可执行的!
将中间文件放在 $GOPATH/pkg/
下,将二进制可执行文件放在 $GOPATH/bin/
下!【类似回想maven install将编译后的jar包放到maven本地仓库】
go get
:远程拉去依赖、代码包
go get
:获取源码并编译:【但需要安装与远程包匹配的代码管理工具,比如Git】
go get github.com/davyxu/cellnet
go test
:测试
条件:
- 文件名以
_test
结尾 - import引入
testing
- 命令:
go test -v t_test.go
package UnitTest
import (
"testing"
"fmt"
)
func TestF1(t *testing.T) {
fmt.Println("测试代码")
}