golang 可变参数用法, handlers ...HandlerFunc

 

handlers ...HandlerFunc 这是什么写法,与 group.handle() 第三个参数是 []handlerFunc 是什么关系呢?

下面是 gin 中的用法:


routergroup.go

// GET is a shortcut for router.Handle("GET", path, handle).
func (group *RouterGroup) GET(relativePath string, handlers ...HandlerFunc) IRoutes {
    return group.handle(http.MethodGet, relativePath, handlers)
}

 

handlers ...HandlerFunc 是 Go 语言中的一种语法特性,被称为可变参数(Variadic Parameters)。

在这里,HandlerFunc 是一个类型,... 符号用于表示该参数可以接受零个或多个 HandlerFunc 类型的值。

在函数调用时,你可以传入任意数量的 HandlerFunc,它们会被当作一个 []HandlerFunc(HandlerFunc类型的切片)传递给 handle 方法。

例如,你可以这样调用GET方法:

group.GET("/path", handler1, handler2, handler3)

在这个例子中,handler1, handler2, handler3 都是 HandlerFunc 类型的函数,它们会被打包成一个切片传递给 handle 方法的 handlers 参数。

 

Link:https://www.cnblogs.com/farwish/p/18233788

posted on 2024-06-05 21:00  ercom  阅读(26)  评论(0编辑  收藏  举报