Go 这是一个整体论点吗?
我最近开始学习,文件中包含以下代码:Go 这是一个整体论点吗?,go,Go,我最近开始学习,文件中包含以下代码: v1 := router.Group("/v1") { v1.POST("/login", loginEndpoint) v1.POST("/submit", submitEndpoint) v1.POST("/read", readEndpoint) } 我阅读了方法组的,如下所示: IRouter interface { IRoutes Group(string, ...HandlerFunc) *RouterG
v1 := router.Group("/v1")
{
v1.POST("/login", loginEndpoint)
v1.POST("/submit", submitEndpoint)
v1.POST("/read", readEndpoint)
}
我阅读了方法组的,如下所示:
IRouter interface {
IRoutes
Group(string, ...HandlerFunc) *RouterGroup
}
也许我误解了语法,或者在代码中遗漏了一些东西(我在Go中很新),但它看起来像是在传递一个块作为第二个参数,这在Go中可能吗?IRouter的Group函数是一个。这意味着可以使用任意数量的HandlerFunc类型的尾随参数调用它 go中此类函数的另一个示例是: 其签名为:
func Println(a…接口{})(n int,err error)
因此,您可以使用数量可变的参数调用它:
fmt.Println(1,2)
fmt.Println(“a”、“b”、“C”)
IRouter的组功能是一个。这意味着可以使用任意数量的HandlerFunc类型的尾随参数调用它
go中此类函数的另一个示例是:
其签名为:
func Println(a…接口{})(n int,err error)
因此,您可以使用数量可变的参数调用它:
fmt.Println(1,2)
fmt.Println(“a”、“b”、“C”)
您在{…}
中看到的块只是一个代码块,而不是任何东西的参数。该方法是可变的,可以接受任意数量的HandlerFunc
参数,但此处不传递任何内容
因为Go是块作用域,所以可以使用块来创建有限的变量作用域。由于块中没有声明,我认为这种模式在这里没有任何用处,只是出于样式原因,将HandlerFunc
赋值缩进为一个组
显示代码块范围的示例:
您在
{…}
中看到的块只是一个代码块,而不是任何东西的参数。该方法是可变的,可以接受任意数量的HandlerFunc
参数,但此处不传递任何内容
因为Go是块作用域,所以可以使用块来创建有限的变量作用域。由于块中没有声明,我认为这种模式在这里没有任何用处,只是出于样式原因,将HandlerFunc
赋值缩进为一个组
显示代码块范围的示例:
谢谢现在我明白了,谢谢!现在我明白了
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