在进行切片的时候,底层数组不会被复制,仍然会被切片所引用。
比如说我们需要输出一个文件的前面10字节,我们使用下面的方式
package main
import (
"fmt"
"io/ioutil"
)
func main(){
filename := "data.csv"
data, err := ioutil.ReadFile(filename)
if err != nil{
fmt.Println(err)
}
header := data[:10]
fmt.Println(header)
}
将结果在进行复制
package main
import (
"fmt"
"io/ioutil"
)
func main(){
filename := "data.csv"
data, err := ioutil.ReadFile(filename)
if err != nil{
fmt.Println(err)
}
header := append([]byte{}, data[:10]...}
// 这里也可以使用copy函数进行复制
fmt.Println(header)
}