这个主要是为了一个预分配机制。假设以下代码:
你看到这个数组在append的过程中会涉及到100次的内存分配,那是很大的消耗了。
所以如果在已知的情况下,比如你知道你这个slice最大不会超过200,那么可以提前设置cap的值为200,一次分配内存。
在未知的情况下,go也会自动的帮你多分配一些内存给你。这样不用你每次修改slice长度都涉及到分配/归还内存操作。
这个主要是为了一个预分配机制。假设以下代码:
你看到这个数组在append的过程中会涉及到100次的内存分配,那是很大的消耗了。
所以如果在已知的情况下,比如你知道你这个slice最大不会超过200,那么可以提前设置cap的值为200,一次分配内存。
在未知的情况下,go也会自动的帮你多分配一些内存给你。这样不用你每次修改slice长度都涉及到分配/归还内存操作。