Cer*_*món 7
将幸存的元素复制到切片的开头,并在完成后重新生成.
p := []int{1, -13, 9, 6, -21, 125}
j := 0
for _, n := range p {
if n >= 0 {
p[j] = n
j++
}
}
p = p[:j]
没有分配内存,但修改了原始片.如果无法修改原始切片,则分配并复制到新切片:
p := []int{1, -13, 9, 6, -21, 125}
j := 0
q := make([]int, len(p))
for _, n := range p {
if n >= 0 {
q[j] = n
j++
}
}
q = q[:j] // q is copy with numbers >= 0