作者热门文章
- xml - AJAX/Jquery XML 解析
- 具有多重继承的 XML 模式
- .net - 枚举序列化 Json 与 XML
- XML 简单类型、简单内容、复杂类型、复杂内容
我正在尝试使用 GoLang grpc 库来制作拨号盘。 GRPC.dial 有一个像这样的方法签名:
func Dial(target string, opts ...DialOption) (*ClientConn, error)
DialOption 是这样的类型:
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
...
...
}
如何将我的用户代理与 Dial 函数一起传递?
图书馆链接here .
最佳答案
这是 Dave Cheney 在此处概述的功能选项示例:
https://dave.cheney.net/2014/10/17/functional-options-for-friendly-apis
实质是您发送一个可选函数,该函数修改由 Dial
函数创建的 ClientConn
。该库带有一组预定义的,包括一个用于更改 user-agent
的:
https://godoc.org/google.golang.org/grpc#WithUserAgent
所以你的代码变成:
dialWithUserAgent := grpc.Dial("target", grpc.WithUserAgent("user-agent"))
关于go - 如何使用类型 func(*dialOptions),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49186553/
我正在尝试使用 GoLang grpc 库来制作拨号盘。 GRPC.dial 有一个像这样的方法签名: func Dial(target string, opts ...DialOption) (*C
我是一名优秀的程序员,十分优秀!