github.com/goplus/gop@v1.2.6/printer/_testdata/22-For-loop/for.gop (about)

     1  // -----------------------------------------------------------------------------
     2  // for with <-
     3  
     4  sum := 0
     5  for x <- [1, 3, 5, 7, 11, 13, 17] if x > 3 {
     6  	sum += x
     7  }
     8  println("sum(5,7,11,13,17):", sum)
     9  
    10  fns := make([]func() int, 3)
    11  for i, x <- [3, 15, 777] {
    12  	v := x
    13  	fns[i] = func() int {
    14  		return v
    15  	}
    16  }
    17  println("values:", fns[0](), fns[1](), fns[2]())
    18  
    19  // -----------------------------------------------------------------------------
    20  // for with range with define tok (k,v := range x)
    21  
    22  sum = 0
    23  for _, x := range [1, 3, 5, 7, 11, 13, 17] {
    24  	if x > 3 {
    25  		sum += x
    26  	}
    27  }
    28  println("sum(5,7,11,13,17):", sum)
    29  
    30  sum = 0
    31  for i, x := range [3, 15, 777] {
    32  	v := x
    33  	fns[i] = func() int {
    34  		return v
    35  	}
    36  }
    37  println("values:", fns[0](), fns[1](), fns[2]())
    38  
    39  // -----------------------------------------------------------------------------
    40  // for with range with assign tok (k,v = range x)
    41  
    42  sum = 0
    43  x := 0
    44  for _, x = range [1, 3, 5, 7, 11, 13, 17] {
    45  	if x > 3 {
    46  		sum += x
    47  	}
    48  }
    49  println("x:", x, x == 17)
    50  println("sum(5,7,11,13,17):", sum)
    51  
    52  // -----------------------------------------------------------------------------
    53  // normal for
    54  
    55  sum = 0
    56  arr := [1, 3, 5, 7, 11, 13, 17]
    57  i := 10
    58  for i = 0; i < len(arr); i++ {
    59  	if arr[i] > 3 {
    60  		sum += arr[i]
    61  	}
    62  }
    63  println("sum(5,7,11,13,17):", sum)
    64  
    65  /* TODO:
    66  arr = [3, 15, 777]
    67  sum = 0
    68  for i = 0; i < len(arr); i++ {
    69  	v := arr[i]
    70  	fns[i] = func() int {
    71  		return v
    72  	}
    73  }
    74  println("values:", fns[0](), fns[1](), fns[2]())
    75  */
    76  
    77  // -----------------------------------------------------------------------------