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

博客园 / 2024-06-06 / 原文

 

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

 

  • HTML 标签查错
  • IP 地理位置查询
  • 多版本 PHP 运行代码
  • 在线 IPFS 存储
  • 以太 ETH 单位转换器
  • 以太坊地址转换