并发完成所有写作

This commit is contained in:
astaxie
2012-09-03 14:16:47 +08:00
parent e9c92a9a70
commit 2a0f7fdd3c
2 changed files with 76 additions and 2 deletions

4
2.6.md
View File

@@ -356,11 +356,11 @@ Go里面真正吸引人的是他内置的逻辑语法就像我们在学习Str
###反射
Go语言实现了反射所谓反射就是动态运行时的状态。我们一般用到的包是reflect包。如何运用reflect包官方的这篇文章详细的讲解了reflect包的实现原理[laws of reflection](http://golang.org/doc/articles/laws_of_reflection.html)
下面我简要的讲解一下一般的使用我们使用reflect大概的分成三步首先我们要去反射是一个类型的值需要把它转化成interface(reflect.Type或者reflect.Value根据不同的情况调用不同的函数)。这两种获取方式如下:
下面我简要的讲解一下一般的使用我们使用reflect大概的分成三步首先我们要去反射是一个类型的值(这些值都实现了空interface)需要把它转化成reflect对象(reflect.Type或者reflect.Value根据不同的情况调用不同的函数)。这两种获取方式如下:
t := reflect.TypeOf(i) //得到类型的元数据,通过t我们能获取类型定义里面的所有元素
v := reflect.ValueOf(i) //得到实际的值通过v我们获取存储在里面的值还可以去改变值
获取这个对象之后我们就可以进行一些操作了也就是reflect对象转化成相应的值例如
tag := t.Elem().Field(0).Tag //获取定义在strcut里面的标签