func Login(c *gin.Context) {
c.String(200, "登录方法")
}
func main() {
r := gin.Default()
r.GET("/", Login)
_ = r.Run(":8080")
}
这里的r.GET(“/”, Login),Login为什么不用传实参?
在r.GET(“/”, Login)这行代码中,Login是一个函数名,而不是函数调用。这是因为Login是一个函数类型的值,可以直接作为参数传递给r.GET函数,而无需在此处传递实参。
在这段代码中,Login是一个处理HTTP请求的函数,它接受一个*gin.Context类型的参数c,并返回一个相应的处理结果。通过将函数名Login作为参数传递给r.GET函数,将该函数注册为Gin框架中根路径"/"的GET请求处理函数。
当有GET请求到达根路径"/"时,Gin框架会调用Login函数来处理该请求,自动传入*gin.Context类型的参数,供我们在Login函数中进行处理和生成响应。
在这种情况下,Login作为函数类型的值传递给r.GET函数,以便在匹配到相应的路由时,能够调用Login函数来处理该路由的请求。
不知道自己理解得对不对,请大佬们帮忙解答!