正式版我的问题是“sv”的作用是什么
func (h Header) Clone() Header {
if h == nil {
return nil
}
// Find total number of values.
nv := 0
for _, vv := range h {
nv += len(vv)
}
sv := make([]string, nv) // shared backing array for headers' values
h2 := make(Header, len(h))
for k, vv := range h {
n := copy(sv, vv)
h2[k] = sv[:n:n]
sv = sv[n:]
}
return h2
}
为什么不把它写成这样,只是将值分配给 h2 而不是创建一个切片
for k, vv := range h {
// changed here
h2[k] = vv
}
一只甜甜圈
相关分类