Go 函数参数中下划线的含义

在这里遇到了以下功能。我注意到最后一个参数用_. 这种模式的意图是什么?


func Index(w http.ResponseWriter, r *http.Request, _ httprouter.Params) {

    fmt.Fprint(w, "Welcome!\n")

}


泛舟湖上清波郎朗
浏览 345回答 3
3回答

catspeake

它的意思是“忽略那个参数”,他们仍然需要最后一个参数的原因是因为他们想将它传递type Handle给GET具有签名的函数:type Handle func(http.ResponseWriter, *http.Request, Params)如果你只是简单地传递类似的东西,func Index(w http.ResponseWriter, r *http.Request)它不会被视为type Handle.

BIG阳

_ 是空白标识符。它在签名中表明该值没有被使用,因此签名仍然会匹配接口的方法。

手掌心

使用“_”代替参数名称可以满足更高级别的“函数作为参数”的义务,而不会收到有关未使用参数的警告。在您的情况下,我相信编译器被告知忽略所有传入的“POST”数据,从而实际上减少了对“GET”功能的请求。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go