GetLastFileMeta 方法明显写错了!

来源:2-5 编码实战:实现多个文件查询信息接口

宇智波为什么带土

2019-07-10

这里的方法明显写错了!

//GetLastFileMeta: 获取批量的文件元信息列表
func GetLastFileMeta(count int) []FileMeta {
	fMetaArray := make([]FileMeta, len(fileMetas))
	for _, v := range fileMetas {
		fMetaArray = append(fMetaArray, v)
	}
	sort.Sort(ByUploadTime(fMetaArray))
	return fMetaArray[0:count]
}

既然这里用了 make 生成数组,for 循环里面再用 append 是会在切片末尾增加元素。

写回答

2回答

巴豆稀饭

2020-01-16

//Get multiple file meta information
func GetLastFileMetas(count int) []FileMeta {
  var fMetaArray []FileMeta
  for _,v:= range fileMetas{
     fMetaArray = append(fMetaArray, v)
  }
  sort.Sort(ByUploadTime(fMetaArray))
  return fMetaArray[0:count]
}

正确写法是这样的

0
0

xiaomo

2019-07-11

非常感谢同学指正!这里代码的确写错了。

对于已经用make申请好的数组空间,直接用下标从0开始循环赋值即可。

0
0

Go实战仿百度云盘-实现企业级分布式云存储系统

紧随“云时代”技术潮流,分布式云存储系统,做第一代云程序员

1077 学习 · 494 问题

查看课程