的行爲,我有這樣的測試代碼,只是從INT切片刪除偶數:奇怪golang範圍內表達
package main
import "fmt"
func main() {
a := []int{0, 1, 2, 3}
for i, v := range a {
fmt.Printf("i: %d v: %d\n", i, v)
fmt.Println("before", a)
if v%2 == 0 {
// delete a[i]
a = append(a[:i], a[i+1:]...)
}
fmt.Println("after", a, "\n")
}
fmt.Println("final", a)
}
輸出是:
i: 0 v: 0
before [0 1 2 3]
after [1 2 3]
i: 1 v: 2
before [1 2 3]
after [1 3]
i: 2 v: 3
before [1 3]
after [1 3]
i: 3 v: 3
before [1 3]
after [1 3]
final [1 3]
您還可以在這裏http://play.golang.org/p/BFPxekBggS找到它。我的問題是爲什麼在最後兩次迭代中變量v
的計算結果爲3?提前致謝。
容易理解,謝謝 – mawenbao