dseax40600 2017-07-13 09:39
浏览 938
已采纳

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

I have this Go code

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

Could you explain me what does append()... do with ... in the end.

  • 写回答

2条回答 默认 最新

  • dongwuwan5646 2017-07-13 10:09
    关注

    The append built-in function appends elements to the end of a slice.

    Read more in the docs.

    The ... is used in variadic functions (of which append is an example), to pass all of the elements of the preceding variable.

    So given a variable x := []int{1, 2, 3}, the expression foo(x...) will pass it to a function as if you had called foo(1, 2, 3) in contrast to foo(x) which would equivalent to foo([]int{1, 2, 3}).

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?