lin*_*rod 7 reflection interface go
我是新来的Go
,也对新的概念reflection
,但应该和可以的使用反映包避免Go
?是否存在reflect
不可避免的情况?
有一些问题域,反射使编写可重用库变得更容易:
encoding/json
,encoding/xml
text/template
,html/template
,fmt.Printf
.但是,使用反射需要付出代价:
fmt.Printf("%d", stringVariable)
)通常存在一种替代解决方案,其不需要诸如代码生成之类的反射,其由诸如protobuf或thrift的编组库使用.
我同意@volker的说法,只有当你知道它会简化现有代码并了解所有缺点时,才应该使用反射.