根据https://play.golang.org/p/7RPExbwOEU,它们都打印相同并具有相同的长度和容量.初始化切片的三种方法之间有区别吗?有首选方式吗?我发现自己同时使用make([]int, 0),并[]int{}具有相同的频率.
这初始化0长度切片.
make([]int, 0)
Run Code Online (Sandbox Code Playgroud)
使用make是初始化具有不同长度的特定容量的切片的唯一方法.这会分配一个长度为0的切片,但容量为1024.
make([]int, 0, 1024)
Run Code Online (Sandbox Code Playgroud)
这是一个切片文字,它也初始化0长度切片.使用此或make([]int, 0)仅是首选.
[]int{}
Run Code Online (Sandbox Code Playgroud)
这会初始化指向切片的指针,该切片会立即解除引用.切片本身尚未初始化,仍然是零,所以这基本上什么都不做,相当于[]int(nil)
*new([]int)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
622 次 |
| 最近记录: |