golang中函数数组使用

版权声明:转载请注明出处,谢谢。 https://blog.csdn.net/butterfly5211314/article/details/81416668

今天(2018-08-04)在学习cache2go时发现其回调只是一个函数, 而不是一个队列, 所以想写一个函数队列(其实就是一组函数), 简单实现如下:

package main  

import (  
    "fmt" 
)  

// 简单echo函数生成器, 生成的函数可打印任意值
func makeEchoFunc(echoWhat interface{}) func(){
    return func() {
        fmt.Println(echoWhat)
    }
} 

func main() {

    // 回调队列
    callbacks := make([]func(), 0)

    // 往队列中添加回调函数
    callbacks = append(callbacks,
        makeEchoFunc(1),
        makeEchoFunc("hello"),
        makeEchoFunc([...]int{6, 7, 8}),
        makeEchoFunc(map[string]string{"key": "value"}))

    // 模拟触发执行
    for _, f := range callbacks {
        f()
    }
}

// 输出如下:
1
hello
[6 7 8]
map[key:value]

小小记录,加油!

猜你喜欢

转载自blog.csdn.net/butterfly5211314/article/details/81416668