首页 > 解决方案 > ([]Constructor)(nil)是什么意思

问题描述

我正在阅读中间件的链接软件 Alice 的源代码,发现表达式:

func New(constructors ...Constructor) Chain {
    return Chain{append(([]Constructor)(nil), constructors...)}
}

我对代码完全没有问题,除了我以前从未见过这个表达式([]Slice)(nil)。有没有人有关于这种表达的任何信息?

标签: goslice

解决方案


它将参数复制constructors到一个新切片中,将其分配给Chain文字中的一个字段,然后返回新结构。

它相当于

func New(constructors ...Constructor) Chain {
    var tmp []Constructor
    tmp = append(tmp, constructors...)
    return Chain{tmp}
}

推荐阅读