Go 如何使用类型func(*拨号选项)
我正在尝试使用GoLang grpc库进行拨号。GRPC.dial具有如下方法签名:Go 如何使用类型func(*拨号选项),go,grpc,Go,Grpc,我正在尝试使用GoLang grpc库进行拨号。GRPC.dial具有如下方法签名: func Dial(target string, opts ...DialOption) (*ClientConn, error) DialOptions func(*dialOptions) DialOption的类型如下: func Dial(target string, opts ...DialOption) (*ClientConn, error) DialOptions func
func Dial(target string, opts ...DialOption) (*ClientConn, error)
DialOptions func(*dialOptions)
DialOption的类型如下:
func Dial(target string, opts ...DialOption) (*ClientConn, error)
DialOptions func(*dialOptions)
dialOptions本身是一个带有其他参数的结构,但我想在transport.ConnectOptions中传递userAgent字符串,它是另一个结构:
type dialOptions struct {
unaryInt UnaryClientInterceptor
streamInt StreamClientInterceptor
...
...
...
copts transport.ConnectOptions
}
type ConnectOptions struct {
// UserAgent is the application user agent.
UserAgent string
...
...
}
如何将我的用户代理与拨号功能一起传递到中
该库已链接。这是Dave Cheney在此概述的功能选项示例: 本质上是您发送一个可选函数,该函数修改由
拨号
函数创建的ClientConn
。该库附带了一系列预定义功能,包括一个用于更改用户代理的功能:
因此,您的代码变成:
dialWithUserAgent := grpc.Dial("target", grpc.WithUserAgent("user-agent"))
我想,我刚刚明白了。函数的作用是:。