range的坑

使用range对值类型的切片进行如下操作时,

intSlice := []int{1, 2, 3, 4}
for _, i := range intSlice {
	i += 1
}

操作的实际是对应数值的副本而非值本身;如果要对值本身进行操作,可以使用类似下面的方法:

intSlice := []int{1, 2, 3, 4}
for i := range intSlice {
	intSlice[i] += 1
}

声明:本作品采用署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0)进行许可,使用时请注明出处。
Author: mengbin92
Github: mengbin92
cnblogs: 恋水无意