This commit is contained in:
Xargin 2017-05-18 10:49:37 +08:00
parent dc92697fec
commit e5ba6210a3

View File

@ -1,6 +1,6 @@
## 12.1. 为何需要反射? ## 12.1. 为何需要反射?
有时候我们需要编写一个函数能够处理一类并不满足普通公共接口的类型的值,也可能是因为它们并没有确定的表示方式,或者是在我们设计该函数的时候这些类型可能还不存在。 有时候我们需要编写一个函数能够处理一类并不满足普通公共接口的类型的值,也可能是因为它们并没有确定的表示方式,或者是在我们设计该函数的时候这些类型可能还不存在。
一个大家熟悉的例子是fmt.Fprintf函数提供的字符串格式化处理逻辑它可以用来对任意类型的值格式化并打印甚至支持用户自定义的类型。让我们也来尝试实现一个类似功能的函数。为了简单起见我们的函数只接收一个参数然后返回和fmt.Sprint类似的格式化后的字符串。我们实现的函数名也叫Sprint。 一个大家熟悉的例子是fmt.Fprintf函数提供的字符串格式化处理逻辑它可以用来对任意类型的值格式化并打印甚至支持用户自定义的类型。让我们也来尝试实现一个类似功能的函数。为了简单起见我们的函数只接收一个参数然后返回和fmt.Sprint类似的格式化后的字符串。我们实现的函数名也叫Sprint。