我有这个Go代码
kithttp.NewServer(
endpoints.AuthorizeUserEndpoint,
decodeRequest,
encodeResponse,
append(options, httptransport.ServerBefore(opentracing.FromHTTPRequest(tracer, "calling HTTP POST /endpoint", logger)))...,
)
您能否解释一下append()...
最终对...
做了什么。
答案 0 :(得分:5)
追加内置函数将元素附加到切片的末尾。
在the docs中阅读更多内容。
...
用于可变函数(其中append
为例),用于传递前一个变量的所有元素。
因此,如果给定变量x := []int{1, 2, 3}
,则表达式foo(x...)
会将其传递给函数,就好像您调用foo(1, 2, 3)
而不是foo(x)
相当于foo([]int{1, 2, 3})
1}}。
答案 1 :(得分:1)
基本上append
获取options
切片,向其添加其他选项,返回新切片,然后将此合并切片作为单独的参数传递给kithttp.NewServer
构造函数,这要归功于{{1} }。