我有一个关于切片在Go中的效用的问题。我刚刚看到为什么列表在Go中很少使用?和为什么使用数组而不是切片?但是有一些问题我没有看到答案。
在我的应用程序中:
我读取了一个包含大约1000万条记录的CSV文件,每条记录有23列。
对于每条记录,我创建一个结构并将其放入链表中。
读取完所有记录后,应用程序逻辑的其余部分将使用此链接列表(处理逻辑本身与此问题无关)。
我更喜欢列表而不是切片的原因是数组/切片需要大量的连续内存。另外,由于我不知道文件中确切的记录数的大小,因此我无法预先指定数组大小(我知道Go可以根据需要动态地重新调整切片/数组的尺寸,但对于如此庞大的数据集,这似乎非常低效)。
我读过的每篇Go教程或文章似乎都建议我应该使用切片而不是列表(因为切片可以完成列表可以做的所有事情,但以某种方式做得更好)。但是,我不明白切片如何或为什么对我的需求更有帮助?任何人有什么想法吗?
梵蒂冈之花
相关分类