zoukankan      html  css  js  c++  java
  • gin 框架中middleware 怎么嵌套调用的

    //通过Next函数实现嵌套,举例如下
    package main

    import "fmt"

    type A struct{
    index int
    handles HandlesFunc
    }

    func (a *A) Handle(f HandleFunc){
    a.handles=append(a.handles,f)
    }

    func (a* A) Next(){
    a.index++ //这个是关键
    for i:=len(a.handles);a.index<i;a.index++ {
    a.handles[a.index](a)
    }
    }

    type HandleFunc func(a *A)
    type HandlesFunc []HandleFunc

    func main(){
    a:=&A{
    index:-1,
    handles:make(HandlesFunc,0),
    }
    a.Handle(func(a* A){fmt.Println("in function 1");a.Next();fmt.Println("exit function 1")})
    a.Handle(func(a* A){fmt.Println("in function 2");a.Next();fmt.Println("exit function 2")})
    a.Next()
    }


    //结果如下

    in function 1
    in function 2
    exit function 2
    exit function 1

    作者:严彦彪 原创作品转载请注明出处
  • 相关阅读:
    C++基础学习6:内联函数
    lvm
    yum源
    mysql性能优化
    PXE
    dns配置
    进程命令
    ssh免密登陆和加密解密
    RAID阵列
    快速部署postfix邮件服务器
  • 原文地址:https://www.cnblogs.com/yanbiao/p/8676303.html
Copyright © 2011-2022 走看看