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 参数。