1.interface 作为参数
https://studygolang.com/articles/2752
2.interface
http://www.iteye.com/news/32486
3.reflect
https://mikespook.com/2011/09/%E5%8F%8D%E5%B0%84%E7%9A%84%E8%A7%84%E5%88%99/
https://studygolang.com/articles/1251
https://blog.csdn.net/liumiaocn/article/details/55253632
获得struct 的tag
http://www.01happy.com/golang-struct-tag-desc-and-get/
4.reflect call 调用函数
https://mikespook.com/2012/07/%E5%9C%A8-golang-%E4%B8%AD%E7%94%A8%E5%90%8D%E5%AD%97%E8%B0%83%E7%94%A8%E5%87%BD%E6%95%B0/