切片的其他妙用
过滤而不分配
这个技巧利用了一个切片与原始切片共享相同的支持数组和容量这一事实,因此存储被重新用于过滤后的切片。当然,原始内容是修改过的。
复制代码
对于必须进行垃圾回收的元素,可以在之后包含以下代码:
复制代码
反转
要用相同的元素但以相反的顺序替换切片的内容:
复制代码
同样的事情,除了两个索引:
复制代码
洗牌
Fisher–Yates 算法:
Since go1.10, this is available at math/rand.Shuffle
复制代码
最小分配的批处理
如果你想对大切片进行批处理,这很有用。
复制代码
产生以下结果:
复制代码
就地重复数据删除(比较)
复制代码
如果可能的话,移动到前面,或者如果不存在则放在前面。
复制代码
滑动窗口
复制代码
版权声明: 本文为 InfoQ 作者【宇宙之一粟】的原创文章。
原文链接:【http://xie.infoq.cn/article/d2445ef9f1ec786383758dffa】。文章转载请联系作者。
评论