2 回答

TA贡献1831条经验 获得超10个赞
您在其中看到的块{ ... }只是一个代码块,而不是任何参数。该Group方法是可变参数的,可以接受任意数量的HandlerFunc参数,但这里没有传入任何参数。
由于 Go 是块作用域,您可以使用块来创建有限的变量作用域。由于块中没有声明,我认为这种模式在这里没有任何用处,除了HandlerFunc由于样式原因导致分配作为一个组缩进。
显示代码块范围的示例:
http://play.golang.org/p/Kgpw1zCC7X
x := 42
{
x := 3
y := 4
fmt.Println("x inside block:", x) // prints 3
}
fmt.Println("x outside block:", x) // prints 42
// fmt.Println(y) // undefined: y

TA贡献2019条经验 获得超9个赞
IRouter 的 Group 函数是一个可变参数函数。这意味着可以使用任意数量的 HandlerFunc 类型的尾随参数调用它。
go 中此类函数的另一个示例是fmt.Println:
它的签名是:
func Println(a ...interface{}) (n int, err error)
所以你可以用可变数量的参数调用它:
fmt.Println(1, 2)
fmt.Println("a" , "b" , "C")
- 2 回答
- 0 关注
- 151 浏览
添加回答
举报