我了解到不允许将切片或地图嵌入Go结构中。但是我发现了两种解决方法:
-
在结构外部声明切片或映射,并将其嵌入到结构中
var mySlice []int type myStruct struct { mySlice }
-
我不太了解第二种解决方法,但是我发现它称为Composition,它是通过在声明结构中的slice或map时省略var关键字来完成的
type myStruct struct { mySlice []int }
我的第一个问题是,谁能解释为什么我们不能直接将切片和映射直接嵌入到结构中?
第二个问题:使用第二种解决方法,是否会对性能产生负面影响?
第三个问题:为什么第一个和第二个解决方法起作用?