我想知道为什么你不能这样做:
type Foo struct { A int }
type Bar Foo
foos := []Foo{Foo{1}, Foo{2}}
bars := []Bar(foos)
//cannot convert foos (type []Foo) to type []Bar
我发现这需要运行时在切片上执行循环以转换每个元素,这将是非惯用的 Go。这是有道理的。
但是,这不能通过编译器仅别名Bar为来解决Foo,因此在内部它们是相同的并且它们在下面使用相同的类型标头吗?我猜答案是否定的,尽管我很好奇为什么。
慕姐8265434
相关分类