Golang 切片重组(reslice)
在Golang中,切片重组通常指的是通过切片的内置函数 append
或通过创建新的切片对象来改变切片的容量或长度。
以下是一些常见的切片重组方法:
- 使用
append
函数:
append
函数可以在切片的末尾添加元素,如果添加后超出了原始切片的容量,Golang会自动分配一个更大的底层数组,并将原有元素复制到新的数组中。
package main
import "fmt"
func main() {
s := []int{1, 2, 3}
s = append(s, 4, 5, 6)
fmt.Println(s) // 输出:[1 2 3 4 5 6]
}
- 创建新的切片:
我们可以通过创建新的切片对象来改变切片的长度或容量,但是新切片和原始切片会共享同一个底层数组。
package main
import "fmt"
func main() {
s := []int{1, 2, 3, 4, 5}
// 创建一个从第二个元素开始的切片,长度为3
s = s[1:4]
fmt.Println(s) // 输出:[2 3 4]
}
- 使用
copy
函数:
copy
函数可以用来创建一个新的切片,并将原始切片的元素复制到新的切片中。
package main
import "fmt"
func main() {
s := []int{1, 2, 3, 4, 5}
// 创建一个长度为3的新切片
newS := make([]int, 3, 3)
copy(newS, s)
fmt.Println(newS) // 输出:[1 2 3]
}
以上就是Golang中常见的切片重组方法。
评论已关闭