golang-slices

#Go中的切片 切片是一种类似于数组的数据结构,但其大小可变。 在底层,切片使用数组,并且它们是在数组之上构建的抽象,使它们更加灵活和有用(将数组视为较低级别)。 您将以与在高级语言中使用数组非常相似的方式使用切片。 您可以类似于数组定义一个切片,省略长度: var mySlice []string //字符串切片 您可以使用值初始化切片: var mySlice = []string{"First", "Second", "Third"} //或者 mySlice := []string{"First", "Second", "Third"} 您可以使用make()函数创建一个指定长度的空切片: mySlice := make([]string, 3) //长度为3的空字符串切片 您可以从现有切片创建一个新的切片,并向其附加一个或多个项目: mySlice := []string{"First", "Second", "Third"} newSlice := append(mySlice, "Fourth", "Fifth") 请注意,我们需要将append()的结果赋给一个新切片,否则会出现编译器错误。原始切片不会被修改,我们得到的是一个全新的切片。 您还可以使用copy()函数复制一个切片,使其不与其他切片共享内存,并且是独立的: mySlice := []string{"First", "Second", "Third"} newSlice := make([]string, 3) copy(newSlice, mySlice) 如果要复制到的切片没有足够的空间(比原始切片短),则仅复制第一个项目(直到有空间为止)。 您可以从数组初始化一个切片: myArray := [3]string{"First", "Second", "Third"} mySlice = myArray[:] 多个切片可以使用同一数组作为底层数组: myArray := [3]string{"First", "Second", "Third"} mySlice := myArray[:] mySlice2 := myArray[:] mySlice[0] = "test" fmt....