MST

星途 面试题库

面试题:Go中切片复制时的注意事项

在Go语言中,使用`copy`函数对切片进行复制,假设有两个切片`src := []int{1, 2, 3}`和`dst := make([]int, 3)`,请说明`copy(dst, src)`操作后两个切片的状态,并且解释如果`dst`的容量小于`src`的长度时会发生什么情况。
12.3万 热度难度
编程语言Go

知识考点

AI 面试

面试题答案

一键面试
  1. copy(dst, src)操作后两个切片的状态
    • 执行copy(dst, src)后,dst切片的内容会被替换为src切片的内容,即dst变为[]int{1, 2, 3}src切片本身不会发生变化,仍然是[]int{1, 2, 3}
  2. 如果dst的容量小于src的长度时会发生的情况
    • copy函数会将src切片中前len(dst)个元素复制到dst切片中。例如,如果src := []int{1, 2, 3, 4}dst := make([]int, 2),执行copy(dst, src)后,dst会变为[]int{1, 2}src不变。copy函数不会因为dst容量小于src长度而报错,它只会复制能容纳的元素个数。