要声明具有非固定大小的空切片,最好是:
mySlice1 := make([]int, 0)
Run Code Online (Sandbox Code Playgroud)
要么:
mySlice2 := []int{}
Run Code Online (Sandbox Code Playgroud)
只是想知道哪一个是正确的方法.
注意: 声明切片还是制作切片?没有回答我的问题,因为它比较切片声明与 make slice,而我的问题比较切片文字与 make slice。这个问题有一个简单的答案,因为裸切片声明创建了一个 nil 切片,但是,如果您仔细阅读下面的问题,我根本不会创建一个 nil 切片。
有两种方法可以创建切片并附加到它。Example 1我下面的代码显示了 as和两种方式Example 2。
package main
import (
"fmt"
)
func main() {
// Example 1
a := []int{}
fmt.Printf("len(a): %d; cap(a): %d; a: %v\n", len(a), cap(a), a)
a = append(a, 10, 20, 30, 40, 50)
fmt.Printf("len(a): %d; cap(a): %d; a: %v\n", len(a), cap(a), a)
// Example 2
b := make([]int, 0)
fmt.Printf("len(b): %d; cap(b): %d; b: %v\n", len(b), cap(b), b)
b = append(b, 10, …Run Code Online (Sandbox Code Playgroud)