slice初始化的疑问
来源:2-5 编码实战:实现多个文件查询信息接口

拧壶冲
2020-10-21
本章提到代码有点问题,如果使用:
fMetaArray := make([]FileMeta, len(fileMetas))
我的理解是make会将slice初始化,append方法执行应该都是加到最后吧。
是不是因为:使用len(fileMetas)后再append,slice是循环append的,因为最后一个元素有值(被make初始化)的所以导致append到第一个了,然后每次都因为slice是满的,每次append都会把新元素append到第一的位置。所以会导致无论执行多少次append,fileMetas的最后一个append到fMetaArray的第一个,fMetaArray后面其他的元素实际还是make初始化出来的NilObject,是这样吗?
写回答
2回答
-
四十个大盗
2020-11-29
代码修改为:
fMetaArray := make([]FileMeta, 0, len(fileMetas))
更加合理00 -
xiaomo
2020-10-22
同学你好,视频内这部分代码有问题,已经加了瞄点说明哈,具体修改后的代码可以参考:https://git.imooc.com/coding-323/filestore-server/src/charter2/meta/filemeta.go
00
相似问题