Golang接口型函数使用技巧
原文链接:https://www.zhoubotong.site/post/51.html
什么是接口型函数?顾名思义接口函数指的是用函数实现接口,这样在调用的时候就会非常简便,这种方式适用于只有一个函数的接口。
这里以迭代一个map为例,演示这一实现的技巧。
常规接口实现
defer语句用于延迟函数调用,每次会把一个函数压入栈中,函数返回前再把延迟的函数取出并执行。延迟函数可以有参数:
-
延迟函数的参数在defer语句出现时就已确定下来(传值的就是当前值);
-
延迟函数执行按后进先出顺序执行;
-
延迟函数可操作主函数的具名返回值(修改返回值);
-
type Handler interface { DoFunc(k, v interface{}) } func DoEach(m map[interface{}]interface{}, h Handler) { if m != nil && len(m) > 0 { for k, v := range m { h.DoFunc(k, v) } } }