golang学习之接口型函数

先说下使用接口型函数的好处:

1、不必将某个接口函数附在某个type上面,保证了命名随意

2、 可以直接调用函数或者使用该接口,两两不耽误

直接上代码吧:

// interface_func project main.go 接口型函数基本使用
package main

import "fmt"

type Handler interface {
    Do(k, v interface{})
}

type HandlerFunc func(k, v interface{})

func (f HandlerFunc) Do(k, v interface{}) {
    f(k, v)
}

func Each(m map[interface{}]interface{}, h Handler) {
    if m != nil && len(m) > 0 {
        for k, v := range m {
            h.Do(k, v)
        }
    }
}

func SelfInfo(k, v interface{}) {
    fmt.Printf("大家好,我是%s,今年%d岁了
", k, v)
}

func EachFunc(m map[interface{}]interface{}, f func(k, v interface{})) {
    Each(m, HandlerFunc(f))
}

func main() {
    SelfInfo("chaozhou", 23) //可以单独调用
    SelfInfo("lisi", 24)     //可以单独调用
    person := make(map[interface{}]interface{})
    person["chaozhou"] = 23
    person["lisi"] = 24
    EachFunc(person, SelfInfo)
}
原文地址:https://www.cnblogs.com/vipzhou/p/6370146.html