报告可被替换为 slices.Backward 的对切片的反向索引循环。

在 Go 1.23 及更高版本中,slices.Backward 会返回从最后一个元素到第一个元素对切片进行遍历的迭代器。 这样便无需手动进行索引处理,并有助于避免差一错误。

示例:


func ReverseInPlace(s []int) []int {
	out := make([]int, 0, len(s))
	for i := len(s) - 1; i >= 0; i-- {
		out = append(out, s[i])
	}
	return out
}

要修正代码,请使用替换为 range slices.Backward(s) 快速修复。

在应用快速修复后:


func ReverseInPlace(s []int) []int {
	out := make([]int, 0, len(s))
	for _, v := range slices.Backward(s) {
		out = append(out, v)
	}
	return out
}