繁体   English   中英

Go中的`append()...`是做什么的

[英]What does `append()…` do in Go

我有这个Go代码

kithttp.NewServer(
    endpoints.AuthorizeUserEndpoint,
    decodeRequest,
    encodeResponse,
    append(options, httptransport.ServerBefore(opentracing.FromHTTPRequest(tracer, "calling HTTP POST /endpoint", logger)))...,
)

你能解释我这是什么append()......到底。

append内置函数将元素追加到切片的末尾。

文档中阅读更多内容。

...在可变参数函数中使用(其中append是一个例子),通过所有前述变量的元素。

因此,给定变量x := []int{1, 2, 3} ,表达式foo(x...)会将其传递给函数,就好像您调用了foo(1, 2, 3)而不是foo(x)相当于foo([]int{1, 2, 3})

基本上, append使用options切片,向其附加其他选项,返回新切片,然后将合并的切片作为单独的参数传递给kithttp.NewServer构造函数,这要归功于...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM