我遇到了这种类型声明:
type Handler func(*Conn)
type Server struct {
Handshake func(*Config, *http.Request) error
Handler
}
(这是https://github.com/golang/net/blob/38c17adf51120973d1735785a7c02f8ce8297c5e/websocket/server.go#L55-L66的简化版
Server结构中的第二个字段是匿名的。只有类型,没有名称。
这是类型声明的语法(https://golang.org/ref/spec#Type_declarations):
TypeDecl = "type" ( TypeSpec | "(" { TypeSpec ";" } ")" ) .
TypeSpec = identifier Type .
它显然需要一个标识符名称。但是我引用的包含语法的部分也提到了匿名字段。
我不明白为什么这种语法是正确的以及如何使用匿名字段。
慕娘9325324
相关分类