44
A
回答
46
除了fabriziom的answer,可以看到在‘Go Slices: usage and internals’,其中被提及[]int
一个使用例子:
由于切片(
nil
)的零值的作用就像一个零长度片,你可以声明切片变量,然后追加到它在一个循环:
// Filter returns a new slice holding only
// the elements of s that satisfy f()
func Filter(s []int, fn func(int) bool) []int {
var p []int // == nil
for _, v := range s {
if fn(v) {
p = append(p, v)
}
}
return p
}
据我回答:为了追加到一个分片,您不必先分配内存:nil
分片p int[]
就足以作为要添加到的分片。
+0
谢谢!这是我需要的。 – 2014-08-28 09:56:40
55
简单声明
var s []int
不分配存储器和s
点nil
,而
s := make([]int, 0)
分配内存和s
指向的内存与0个元素的切片。
通常情况下,如果您不知道用例的确切大小,则第一个更习惯。
相关问题
- 1. CSS透明切片
- 2. 如何绘制Java 3D切片形状或切片
- 3. 切片,用什么切片
- 4. 将图像或照片切成片
- 5. 创建无切片的切片
- 6. 如何遍历切片映射切片?
- 7. 追加值到切片的切片
- 8. 加速切片客户的切片mysql
- 9. 使用协调的切片/切片UiImage
- 10. 切片使用指针切片
- 11. 表示连接切片的切片
- 12. jquery添加或切片
- 13. 加入或推入切片
- 14. Golang多维切片复制
- 15. 如何复制&[u8]切片?
- 16. VBA切片复制方法
- 17. Array切片不工作
- 18. 切片在IOS
- 19. 切片串
- 20. 切片阵列
- 21. 行为切片
- 22. 熊猫切片
- 23. data.frame切片
- 24. 切片在Javascript
- 25. NumPy的切片
- 26. 通过切片
- 27. 切片python os.listdir()
- 28. 切片图
- 29. x03在切片
- 30. Tensorflow:切片PartitionedVariable
第一个创建一个“无”切片,而第二个创建一个“空”切片(这是*“Go in action book”使用的术语*)。为了避免在这里发布相同的答案,您可以查看https://stackoverflow.com/a/45997533/1561148 – tgogos 2017-09-01 10:30:27