ok, I get it. But how about this:
package main
import "fmt"
func main() {
i := 2
x := []int{3, 5, 7}
for _, x[i] = range x {
}
fmt.Println(x) // [3 5 5]
}
I expect it is still [3 5 7]
On Wednesday, December 6, 2017 at 9:34:38 AM UTC-5, Ian Davis wrote:
>
> You can see your error if you initialise i to -1 before the loop: v[i] is
> evaluated before i is incremented.
>
>
> On Wed, 6 Dec 2017, at 02:26 PM, T L wrote:
>
>
> package main
>
> import "fmt"
>
> func main() {
> var i int
> var x = []int{3, 5, 7}
> var y = make([]int, 3)
> for i, y[i] = range x {
> fmt.Println(i, ":", y, ", y[", i, "] =", y[i])
> }
> fmt.Println("y =", y)
> }
>
> // output:
> 0 : [3 0 0] , y[ 0 ] = 3
> 1 : [5 0 0] , y[ 1 ] = 0
> 2 : [5 7 0] , y[ 2 ] = 0
> y = [5 7 0]
>
>
> --
> You received this message because you are subscribed to the Google Groups
> "golang-nuts" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected] <javascript:>.
> For more options, visit https://groups.google.com/d/optout.
>
>
>
--
You received this message because you are subscribed to the Google Groups
"golang-nuts" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/d/optout.