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岁了\n", 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)
}

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏编程坑太多

jQuery对表格的操作示例

1552
来自专栏逍遥剑客的游戏开发

关于RenderTarget的注意事项

19610
来自专栏听雨堂

Flash背景透明的代码

      我觉得这个应该不是太难,结果DW中死活设置不成功,网上搜索到的都是一些互相抄了抄去的不知所云的东西,懒得去学习研究,还不如在自己原来做过的网站中找代...

2036
来自专栏用户2442861的专栏

Tesseract文字训练,以及样本生成

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/haluoluo211/article/details...

1851
来自专栏Python小屋

使用Python提取JPEG图像文件dpi并计算物理尺寸

感谢浙江省浦江中学方春林老师提供的问题、测试图像和第一版本的代码! 下面的代码需要安装Python图像处理库pillow,由于不同公司对JPEG压缩算法和格式的...

58110
来自专栏祝威廉

TensorFlowOnSpark 源码解析

这两天琢磨了下spark-deep-learning和spark-sklearn两个项目,但是感觉都不尽人如意。在training时,都需要把数据broadca...

1432
来自专栏Hadoop实操

如何在CDH6.0中使用纠删码

Fayson在前面的文章中介绍过《什么是HDFS的纠删码》,当时详细介绍了什么是纠删码,纠删码的实现原理,以及一些Benchmark的结果比较。

5895
来自专栏DannyHoo的专栏

iOS开发中QQ好友列表下拉显示全部好友实现思路

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u010105969/article/details/...

4642
来自专栏大数据挖掘DT机器学习

使用Python绘制点击图、热图

via: http://blog.csdn.net/wenyusuran/article pyHeatMap是一个使用Python生成热图的库,基本代码是我一年...

5724
来自专栏DeveWork

WordPress 中强制设置 特色图像 才能发表文章

在开发WordPress 主题的时候,为了丰富网页,常常使用到特色图像功能;这就要求主题使用者为每篇文章都要设置个特色图像,但总有一些用户不会乖乖按要求做;如此...

2146

扫码关注云+社区

领取腾讯云代金券