这个主要是为了一个预分配机制。假设以下代码:

你看到这个数组在append的过程中会涉及到100次的内存分配,那是很大的消耗了。

所以如果在已知的情况下,比如你知道你这个slice最大不会超过200,那么可以提前设置cap的值为200,一次分配内存。

在未知的情况下,go也会自动的帮你多分配一些内存给你。这样不用你每次修改slice长度都涉及到分配/归还内存操作。